8

如何从 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\*在代码覆盖率输出中?

4

1 回答 1

5

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

包含和排除代码覆盖的文件

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

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

为此,请在顶层添加以下内容:

<filter>
  <whitelist processUncoveredFilesFromWhitelist="true">
    <directory suffix=".php">.../MyProject/</directory>
  </whitelist>
</filter>
于 2012-12-14T09:51:39.327 回答