我显然不了解PHPUnit的代码覆盖白名单。
我有几个文件夹的以下过滤器:
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
<whitelist addUncoveredFilesFromWhitelist="false">
<directory suffix=".php">./lib</directory>
</whitelist>
</filter>
&#34;应用&#34; - 我想知道这里没有涉及的任何内容,所以我已经为核心应用程序启用了addUncoveredFilesFromWhitelist
。 (这可以按预期工作)
&#34; LIB&#34; - 我想从这里看到文件使用所涵盖的内容,但会有很多内容未被使用,因此我已禁用addUncoveredFilesFromWhitelist
库文件。 (这个我有问题)
如果未包含在运行时的库文件会在报告中显示为未执行的代码。我可以通过添加会导致致命错误的行来验证测试期间未包含的代码。
这个结果似乎与PHPUnit文档所说的相矛盾,但毫无疑问我做错了。任何人都可以解释我如何包含我执行的库代码,但只包括测试期间所需的代码吗?
答案 0 :(得分:-1)
您可以使用filter
中的phpunit.xml
节点。我在项目中使用了以下文件。它列入白名单的本地文件:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
syntaxCheck="false"
bootstrap="tests/bootstrap.php"
>
<php>
<includePath>lib/php</includePath>
</php>
<filter>
<whitelist>
<directory suffix=".php">lib/php/</directory>
</whitelist>
</filter>
<testsuites>
<testsuite name="Jm_Log">
<directory suffix="Test.php">tests</directory>
</testsuite>
</testsuites>
<logging>
<log type="coverage-html" target="build/coverage" title="jam"
charset="UTF-8" yui="true" highlight="true"
lowUpperBound="35" highLowerBound="70"/>
<log type="coverage-clover" target="build/logs/clover.xml"/>
<log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="false"/>
</logging>
</phpunit>
注意:您也可以使用黑名单。