我们正在努力使用phpunit从覆盖率报告中获得所需的结果。
以前,我们只捕获与单元测试相关联的文件的代码覆盖率(我认为这是白名单为空时的默认设置)。
现在,我们想要一个覆盖率报告,其中包括我们已经测试过的文件,以及一个或两个特定的目录(其中包含覆盖率为0%的文件)。这将为我们提供更现实的统计数据。
我们使用了一个xml配置文件来尝试实现这一点:
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">php/lib/</directory>
</whitelist>
<blacklist>
<directory suffix=".php">/usr/share/php/SymfonyComponents/YAML</directory>
</blacklist>
</filter>
然而,这个配置现在只包括白名单中指定目录的覆盖率报告。它并没有捕获我们为其编写单元测试的其他文件的覆盖率。
我如何实现捕获覆盖率的代码覆盖率配置
1) 所有已经具有与其关联的单元测试的文件
2) 其他可配置目录
以下是我们用来覆盖测试未覆盖的目录的示例。本节介绍应用程序。我们有不同的文件扩展名,因此也为您提供了目录后缀示例。
<!-- Add files not covered with tests into Code Coverage Analysis -->
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".class">.</directory>
<directory suffix=".fn">.</directory>
<directory suffix=".php">lib/UTIL</directory>
<exclude>
<file>lib/UTIL/AJAX.class</file>
<file>lib/UTIL/GetDump.fn</file>
<directory>ExternalLibraries</directory>
</exclude>
</whitelist>
</filter>
IIRC,PHPUnit如果呈现,则使用<whitelist>
;如果不呈现,则它使用<blacklist>
。尝试完全删除<whitelist>
。