2

Env:

PHP 7.0.27-1+ubuntu16.04.1+Clear Magento 2.2.2 with sample data (downloaded in archive)

I have created new test module that very simple with unit test for one class. When I run

php bin/magento dev:tests:run unit

Everything ok, tests are running (including mine) But when I try to run only my tests using :

php ./vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/VendorName/ModuleName/Test/Unit

it returns the following message:

You need to set up the project dependencies using Composer:

composer install

You can learn all about Composer on https://getcomposer.org/.

I run composer install:

Loading composer repositories with package information

Installing dependencies (including require-dev) from lock file

Nothing to install or update

Package sjparkinson/static-review is abandoned, you should avoid using it. Use phpro/grumphp instead.

Generating autoload files

If I try to run:

php ./vendor/phpunit/phpunit/phpunit --filter MyTestingClassTest

It returns:

PHPUnit 6.2.4 by Sebastian Bergmann and contributors.

Usage: phpunit [options] UnitTest [UnitTest.php] phpunit [options]

Code Coverage Options:

--coverage-clover Generate code coverage report in Clover XML format.

--coverage-crap4j Generate code coverage report in Crap4J XML format.

...

Logging Options:

--log-junit Log test execution in JUnit XML format to file.

...

Test Selection Options:

--filter Filter which tests to run.

--testsuite Filter which testsuite to run.

--group ... Only runs tests from the specified group(s).

...

And so on.

So does anybody faced with this issue?

I'm not new Magento2 but new in unit testing so I can miss something primary. Thanks in advance.

UPDATE: PHPUNIT doesn't installed globally, I tried all steps above on another magento instalation v2.2.1 and I have the same issue.

  • Try to change into the directory dev/tests/unit and run phpunit from there, I think the bootstrap relies on some relative paths – Fabian Schmengler Jan 22 '18 at 15:24
2

./vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/VendorName/ModuleName/Test/Unit

Try Below Command instead of yours

./vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/VendorName/ModuleName/Test/Unit


You need to set up the project dependencies using Composer:

composer install

You can learn all about Composer on https://getcomposer.org/.


This error occur because phpunit is not symlink with actual path so first you need to create symlink using below command

ln -s ./vendor/phpunit/phpunit/phpunit ./vendor/bin/phpunit

or if you are facing issue in symlink so you can run unit test by below command as well.

./vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/Test/Unit/Block

  • Worked for me using ./vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/Test/Unit/Block – Umar Yousaf Nov 21 '18 at 9:01
1

I had a very similar problem (though not with Magento). Try reinstalling phpunit.

  • Remove phpunit from composer.json
  • $ composer update
  • Add phpunit back to composer.json
  • $ composer update

Source: https://github.com/sebastianbergmann/phpunit/issues/1613#issuecomment-74474966

0

I had a very similar problem (though not with Magento). Try reinstalling phpunit.

  1. Remove composer.json
  2. Remove composer.lock

Add these files and then start below command: http://www.mediafire.com/file/sk8x02qpl42z3pd/composer.json/file

$ composer update

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.