我正在尝试为特定目录的 phpunit 设置代码覆盖率。谁能告诉我:
<filter>
<whitelist>
<directory suffix=".php">lib/</directory>
</whitelist>
</filter>
和
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">lib/</directory>
</whitelist>
</filter>
和
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">lib/</directory>
</whitelist>
</filter>
目前前两个选项可以使用(覆盖率不同)但第三个选项将失败并出现类似于 How to add uncovered files to PHPUnit code coverage report of the Yii application 的错误.
刚开始使用 phpunit,想了解这些白名单选项之间的区别。我阅读了有关此的官方文档,但不确定我是否理解。
最佳答案
快速浏览php-code-coverage 的源代码GitHub上的包揭示了真相:
addUncoveredFilesFromWhitelist 是 FALSE然后代码覆盖率包含有关已加载和执行的文件的信息(仅包含包含代码的行);processUncoveredFilesFromWhitelist 的值会被忽略;addUncoveredFilesFromWhitelist 是 TRUE那么白名单中未加载和执行的文件也将包含在代码覆盖范围内:
addUncoveredFilesFromWhitelist 的默认值为 TRUE,processUncoveredFilesFromWhitelist 的默认值为 FALSE。这意味着白名单中未被覆盖的文件(因为它们没有运行)使用快速方式包含在报告中,并且它们的覆盖率报告虽然准确 (0%) 是使用计算的总行数略大于实际行数。
但是,由于 0 仍然是 0%,它认为这是在报告中包含未发现文件的最佳方式。
关于Phpunit 覆盖范围 : what is the difference between 'addUncoveredFilesFromWhitelist' and 'processUncoveredFilesFromWhitelist' options?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29041254/