问题
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