Creative Commons License
This work is licensed under a
Creative Commons
Attribution-Share Alike 3.0
Unported License.

Master Symfony2 fundamentals

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
trainings.sensiolabs.com

Discover the SensioLabs Support

Access to the SensioLabs Competency Center for an exclusive and tailor-made support on Symfony
sensiolabs.com

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.

PHPUnit

To run the Symfony2 test suite, install PHPUnit 3.7 (or later) first.

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
  • Swift Mailer
  • Twig
  • Monolog

To install them all, use Composer:

Step 1: Get Composer

1
$ curl -s http://getcomposer.org/installer | php

Make sure you download composer.phar in the same folder where the composer.json file is located.

Step 2: Install vendors

1
$ php composer.phar --dev install

Note

Note that the script takes some time to finish.

Note

If you don't have curl installed, you can also just download the installer file manually at http://getcomposer.org/installer. Place this file into your project and then run:

1
2
$ php installer
$ php composer.phar --dev install

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

1
$ php composer.phar --dev update

Running

First, update the vendors (see above).

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

1
$ 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.

Tip

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

1
$ phpunit src/Symfony/Component/Finder/

Tip

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:

1
$ phpunit --coverage-html=cov/

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

Tip

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