Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPUnit代码覆盖所有测试文件和另一个目录_Php_Xml_Unit Testing_Phpunit_Code Coverage - Fatal编程技术网

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

PHPUnit代码覆盖所有测试文件和另一个目录,php,xml,unit-testing,phpunit,code-coverage,Php,Xml,Unit Testing,Phpunit,Code Coverage,我们正在努力使用phpunit从覆盖率报告中获得期望的结果 以前,我们只捕获与单元测试相关联的文件的代码覆盖率(我相信当白名单为空时,这是默认设置) 现在,我们希望有一个覆盖率报告,其中包括我们已经测试过的文件,以及一个或两个特定的目录(其中包含覆盖率为0%的文件)。这应该给我们提供更现实的统计数字 我们使用了一个xml配置文件来尝试并实现这一点: <filter> <whitelist processUncoveredFilesFromWhitelist="true"

我们正在努力使用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>

php/lib/
/usr/share/php/SymfonyComponents/YAML
然而,这个配置现在只包括白名单中指定目录的覆盖率报告。它并没有捕获我们为其编写单元测试的其他文件的覆盖率

如何实现代码覆盖率配置,以捕获以下内容的覆盖率:

1) 已与单元测试关联的所有文件


2) 其他可配置目录

IIRC,PHPUnit使用
如果出现,如果没有,则使用
。请尝试完全删除

下面是一个示例,说明我们用于覆盖测试未覆盖的目录的内容。本节介绍应用程序。我们有不同的文件扩展名,所以目录后缀的例子也包括在内

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

.
.
lib/UTIL
lib/UTIL/AJAX.class
lib/UTIL/GetDump.fn
外部图书馆

删除
白名单
将意味着我们将无法获得
php/lib/
目录的任何覆盖率报告。有什么办法可以两全其美?