Jan 09 2011

PHPUnit code coverage output in Windows including PHPUnit classes

Having just to got to the point where I was happy with my distributed project builds on Windows and Linux, I discovered my code coverage reports generated by PHPUnit were different between the two.

On the Linux machine, just the classes I expected were included in the report. On Windows however, it included some of the PHPUnit classes.

Turns out I had to create a phpunit.xml configuration file and include a whitelist of files.

For example:

<?xml version="1.0" encoding="UTF-8"?>
    <phpunit>
        <filter>
            <whitelist>
                <directory suffix=".php">./src</directory>
            </whitelist>
        </filter>
        <logging>
            <log type="junit" target="./build/logs/testsuites.xml"/>
            <log type="coverage-clover" target="./build/logs/coverage-clover.xml"/>
        </logging>
    </phpunit>

Info

I'm Ade Slade, a PHP web developer.