How do I exclude the base directories from PHPUnit's Code Coverage?

This is my phpunit.xml

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="include.php"
         stopOnError="false"
         stopOnFailure="false"
         stopOnIncomplete="false"
         stopOnSkipped="false">
    <testsuite name="MyProject">
        <directory>classes/*</directory>
    </testsuite>
    <logging>
        <log type="coverage-html" target="../reports/coverage" charset="UTF-8" yui="true" highlight="false" lowUpperBound="35" highLowerBound="70"/>
        <log type="coverage-xml" target="../reports/coverage.xml"/>
        <log type="test-xml" target="../reports/logfile.xml" logIncompleteSkipped="false"/>
        <log type="testdox-html" target="../reports/testdox.html"/>
        <log type="testdox-text" target="../reports/testdox.txt"/>
    </logging>
</phpunit>

When it output it includes all the base directories like:

c:\work\some\path\MyProject

How can I make it only include the ...\MyProject\* in the Code Coverage output?

share|improve this question
feedback

1 Answer

Your answers doesn't really describe your project layout but I assume what you are looking for is:

Including and Excluding Files for Code Coverage which allows you to specify a whitelist of files that PHPUnit will care about when generating code coverage.

Everything that isn't on that white list will not be shown in the report.

To do so add the following somewhere top level:

<filter>
  <whitelist processUncoveredFilesFromWhitelist="true">
    <directory suffix=".php">.../MyProject/</directory>
  </whitelist>
</filter>
share|improve this answer
Sorry if I was not clear. I do not want to exclude anything. I only want to remove the base directory from the code coverage report. So for example right now if I run my tests, and I open the CC report, I have to click at least 5 links to get to anything meaning full. C:\ -> work -> projects -> websites -> MyProject -> classes. I just want to have at the top level MyProject so I can click MyProject -> classes. – Petah Dec 14 '12 at 10:16
The <filter> in question should do that for you as far as I'm aware. Might be an issue with pathes on windows or something strange but in general telling phpunit "this is the root folder for coverage" is done that way. – edorian Dec 14 '12 at 10:33
feedback

Your Answer

 
or
required, but never shown
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.