我正在尝试为特定目录设置phpunit的代码覆盖率.有人能告诉我有什么区别:
<filter>
<whitelist>
<directory suffix=".php">lib/</directory>
</whitelist>
</filter>
Run Code Online (Sandbox Code Playgroud)
和
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">lib/</directory>
</whitelist>
</filter>
Run Code Online (Sandbox Code Playgroud)
和
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">lib/</directory>
</whitelist>
</filter>
Run Code Online (Sandbox Code Playgroud)
目前前两个选项将起作用(具有不同的覆盖数)但第三个选项将失败,其错误类似于如何将未覆盖的文件添加到Yii应用程序的PHPUnit代码覆盖率报告中.
刚刚开始使用phpunit,并希望了解这些白名单选项之间的差异.我阅读了关于此的官方文档,但我不确定我理解.
axi*_*iac 33
快速浏览php-code-coverage一下GitHub上的软件包源代码,可以看出真相:
addUncoveredFilesFromWhitelist是,FALSE则代码覆盖率包含有关已加载和执行的文件的信息(仅包含包含代码的行); 在这种情况下忽略processUncoveredFilesFromWhitelist;addUncoveredFilesFromWhitelist是,TRUE则白名单中未加载和执行的文件也将包含在代码覆盖中:
为默认值addUncoveredFilesFromWhitelist就是TRUE和processUncoveredFilesFromWhitelist的FALSE.这意味着白名单中未覆盖的文件(因为它们没有运行)使用快速方式及其覆盖率报告包含在报告中,而exact(0%)则使用略大于真实的.
但是,由于0任何东西仍然存在0%,它认为这是在报告中包含未覆盖文件的最佳方式.
所以我觉得我错了.以下是文档中有关它的内容:
(可选)通过在PHPUnit配置中设置addUncoveredFilesFromWhitelist ="true",可以将所有列入白名单的文件添加到代码覆盖率报告中(请参阅"为代码覆盖率包含和排除文件"一节).这允许包含尚未测试的文件.例如,如果要获取有关此类未覆盖文件的哪些行可执行的信息,还需要在PHPUnit配置中设置processUncoveredFilesFromWhitelist ="true"(请参阅"为代码覆盖率包含和排除文件"一节).
所以这里的答案是,adding未覆盖的文件将它们包含在覆盖率报告中,但实际上processing它们将收集更多信息.
原版的
看看塞巴斯蒂安的这个Twitter对话.从twitter的简洁性来看,它有点难以辨别,但它看起来addUncoveredFilesFromWhitelist可能只是processUncoveredFilesFromWhitelist提供遗留代码的相同功能的旧形式.
Twitter对话的内容是:
@ user1:在@phpunit中,addUncoveredFilesFromWhitelist ="true"和processUncoveredFilesFromWhitelist ="true"之间有什么区别?
@s_bergmann:你想使用processUncoveredFilesFromWhitelist.如果它不起作用(遗留代码),则使用addUncoveredFilesFromWhitelist