Magento – Magento2 unit tests doesn’t run using vendor/bin/phpunit or vendor/phpunit/phpunit/phpunit

magento2.2.2phpunitunit tests

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.

Best Answer

./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

Related Topic