PHPUnit代码覆盖所有测试文件和另一个目录

时间:2012-07-26 11:10:03

标签: php xml unit-testing phpunit code-coverage

我们正在努力使用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)其他可配置目录

2 个答案:

答案 0 :(得分:1)

以下是我们用于涵盖测试未涵盖的目录的示例。该部分涵盖了该应用程序。我们有不同的文件扩展名,因此您也可以使用目录后缀示例。

<!-- 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>

答案 1 :(得分:0)

IIRC,PHPUnit使用<whitelist>如果有,则使用<blacklist>。请尝试删除<whitelist>