Reporting Code Coverage with PHPUnit and XDebug

As a follow up to my previous post about debugging php I slightly changed the process and installed XDebug instead of Zend Debugger. This was mainly so that I could generate nice code coverage reports for my unit tests–and it was easy to setup.

To install xdebug all I had to do was:

% port install php5-xdebug

and then I edit my previous ini file to use xdebug instead:


The only other change was that I selected XDebug instead of Zend Debugger as the engine in the debug profile I had previously setup in Zend Studio.

With XDebug, the debugging in Zend Studio is the same however I can now generate nice code coverage reports for my PHPUnit tests:

phpunit --coverage-html ./report MyTests.php

The report lets you view each individual file that was included in the execution:

Note: if you’re using this you may want to increase the memory assigned to your command line PHP ini file. The report generation is a memory hog so I bumped mine to 512MB just to be safe.