Tjorriemorrie
Tjorriemorrie

Reputation: 17302

How to use phpunit installed from composer?

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.

Upvotes: 59

Views: 71704

Answers (6)

Flimm
Flimm

Reputation: 151336

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"
    ]
}

Upvotes: 13

StalkAlex
StalkAlex

Reputation: 743

What about more composer way?

composer exec phpunit

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

Upvotes: 24

André
André

Reputation: 2142

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

Upvotes: 9

Alex
Alex

Reputation: 3464

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

Upvotes: 6

medina
medina

Reputation: 8187

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,

Upvotes: 17

Wouter J
Wouter J

Reputation: 41954

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.

Upvotes: 79

Related Questions