2012-07-26 50 views
2

我们正在努力从使用phpunit的覆盖率报告中获得期望的结果。我们是只有捕获有单元测试相关的文件的捕获代码覆盖(我相信这是白名单为空时的默认设置)。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)其他配置目录

回答

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

IIRC,PHPUnit的用途有关的单元测试的所有文件如果它存在,则使用<blacklist>,如果不存在,则使用。尝试删除<whitelist>

+0

删除'whitelist'将意味着我们不会为我们的'php/lib /'目录得到任何覆盖报告。有没有办法让两全其美? – user1027562 2012-07-26 21:24:33

相关问题