How to use phpunit installed from composer?

≡放荡痞女 提交于 2019-12-17 22:34:51

问题


I want to start unit testing my symfony 2 application with phpunit. I installed phpunit using composer (per-project dependancy). http://www.phpunit.de/manual/current/en/installation.html

How do I now run the phpunit command on Zend Server? I don't have pear installed.


回答1:


If you followed the documentation, you have set the phpunit/phpunit dependency as a 'dev-dependency'.

If you don't have composer, you need to install it first. This is explained in the documentation: Installation *nix or Installation Windows. If you already installed composer, it is a good practise to update composer to the latest version by running the self-update command:

$ php composer.phar self-update

After your have done that, you need to install all dependencies, including the dev dependencies. This is done by running the update command with the --dev switch:

$ php composer.phar update --dev

All the dependencies are installed in the vendor directory. PHPunit runs from the console. Composer automatic put the console files inside the vendor/bin directory. You need to execute the phpunit file in there:

$ vendor/bin/phpunit -c app/

The -c switch tells PHPUnit to look for the configuration file in the app directory, Symfony2 already set up the correct configuration to run all tests that are in the <bundle>/Tests directory.

UPDATE (05-04-2013)

Composer has changed their update/install commands. update will install dev dependencies by default and if you want to install dev dependencies, you need to use the --dev option.

UPDATE (11-06-2013)

Composer has changed their commands again, the install command will also install dev dependencies.




回答2:


What about more composer way?

composer exec phpunit

It can be used for every binary file in vendor/bin directory.




回答3:


UPDATE (12-02-2014)

Composer and PHPUnit have changed their commands again. The install command will also install dev dependencies:

Composer.json:

...
"require-dev": {
    "phpunit/phpunit": "3.7.*"
},

Run it:

$ composer.phar update --prefer-dist --dev

Now you can run your tests by:

$ bin/phpunit -c /app

Cheers,




回答4:


I like to define a script within composer.json, so that I can just run:

$ composer test
# ... runs phpunit

To do so, I need to modify composer.json to contain an entry like this:

"scripts": {
    "test": [
        "phpunit tests/*.php"
    ]
}



回答5:


For Symfony 3 add "phpunit/phpunit": "5.4.*" to the "require-dev" section in your composer.json and run tests from the applications root directory with:

./vendor/bin/phpunit tests



回答6:


Add it as dev dependency, in your project directory:

composer require --dev "phpunit/phpunit=4.8.*"

The installed phpunit can now be executed with:

./vendor/bin/phpunit


来源:https://stackoverflow.com/questions/13764309/how-to-use-phpunit-installed-from-composer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!