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

Pet*_*tah 8 php phpunit unit-testing 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>
Run Code Online (Sandbox Code Playgroud)

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

c:\work\some\path\MyProject
Run Code Online (Sandbox Code Playgroud)

如何使其仅包括...\MyProject\*代码覆盖率输出?

edo*_*ian 5

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

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

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

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

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

<filter>
  <whitelist processUncoveredFilesFromWhitelist="true">
    <directory suffix=".php">.../MyProject/</directory>
  </whitelist>
</filter>
Run Code Online (Sandbox Code Playgroud)