从PHPUnit代码覆盖范围中排除基目录

时间:2012-12-13 23:35:31

标签: php unit-testing phpunit code-coverage xdebug

如何从PHPUnit的代码覆盖范围中排除基目录?

这是我的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>

输出时,它包括所有基本目录,如:

c:\work\some\path\MyProject

如何在代码覆盖率输出中仅包含...\MyProject\*

1 个答案:

答案 0 :(得分:5)

您的答案并没有真正描述您的项目布局,但我认为您正在寻找的是:

Including and Excluding Files for Code Coverage

这允许您指定PHPUnit在生成代码覆盖率时将关心的文件的白名单。

该白名单上没有的所有内容都不会显示在报告中。

为此,请在顶级位置添加以下内容:

<filter>
  <whitelist processUncoveredFilesFromWhitelist="true">
    <directory suffix=".php">.../MyProject/</directory>
  </whitelist>
</filter>