SymfonyWorld 2022 Summer Edition
100% Online
+20 talks and workshops
Starts in 18 days

Running Symfony2 Tests

Edit this page

Warning: You are browsing the documentation for Symfony 2.0, which is no longer maintained.

Read the updated version of this page for Symfony 6.1 (the current stable version).

Running Symfony2 Tests

Before submitting a patch for inclusion, you need to run the Symfony2 test suite to check that you have not broken anything.


To run the Symfony2 test suite, install PHPUnit 3.5.11 or later first:

$ pear config-set auto_discover 1
$ pear install

Dependencies (optional)

To run the entire test suite, including tests that depend on external dependencies, Symfony2 needs to be able to autoload them. By default, they are autoloaded from `vendor/` under the main root directory (see `autoload.php.dist`).

The test suite needs the following third-party libraries:

  • Doctrine
  • Swiftmailer
  • Twig
  • Monolog

To install them all, run the `vendors` script:

$ php vendors.php install


Note that the script takes some time to finish.

After installation, you can update the vendors to their latest version with the follow command:

$ php vendors.php update


First, update the vendors (see above).

Then, run the test suite from the Symfony2 root directory with the following command:

$ phpunit

The output should display `OK`. If not, you need to figure out what's going on and if the tests are broken because of your modifications.


If you want to test a single component type its path after the `phpunit` command, e.g.:

$ phpunit src/Symfony/Component/Finder/


Run the test suite before applying your modifications to check that they run fine on your configuration.

Code Coverage

If you add a new feature, you also need to check the code coverage by using the `coverage-html` option:

$ phpunit --coverage-html=cov/

Check the code coverage by opening the generated `cov/index.html` page in a browser.


The code coverage only works if you have XDebug enabled and all dependencies installed.

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.