我只是对单个文件进行单元测试,虽然它是唯一一个经过单元测试(好)的文件,但代码覆盖率不仅仅是单个文件(不好)。它覆盖了我的PEAR目录中的一些文件,由于某种原因我还无法理解,所以我的所有覆盖统计信息都被扭曲了。
所以我试图消除这些额外的文件,但无法获得绝对目录的格式:
<phpunit>
<testsuites>
<testsuite name="My Test Suite">
<file>AntProxyTest.php</file>
</testsuite>
</testsuites>
<logging>
<log type="coverage-html" target="/tmp/report" charset="UTF-8"
yui="true" highlight="false"
lowUpperBound="35" highLowerBound="70"/>
</logging>
<filter>
<blacklist>
<directory suffix=".php">c:\php\pear</directory>
</blacklist>
</filter>
</phpunit>
不是按照我的意愿排除,要么是正斜杠,要么是 file:// c:/ php / pear 。
答案 0 :(得分:4)
我认为phpunit在Windows上获取该路径存在问题,因为我无法在Linux上重现该路径。 (使用绝对和相对路径工作正常)。
我也听说人们在Windows上过滤和修改这个问题。
所以我的第一个建议就是使用白名单。我创建了一个小项目,其中包含来自不同文件夹的代码(并且所有代码都出现在代码覆盖中)。
但在设置此白名单后:
<filter>
<whitelist>
<directory suffix=".php">.</directory>
</whitelist>
</filter>
只有该文件夹中的代码(或您的文件,如果您真的有一个)显示在覆盖率报告中。
答案 1 :(得分:1)
我设法在IRC上抓住塞巴斯蒂安,同时其他人也遇到了黑名单问题。塞巴斯蒂安表示,我所看到的这些PEAR文件是一个已知问题,将在下一版本修复。
正如上面的编辑所说,塞巴斯蒂安还说最好将你想要的东西列入白名单,这样做,这个问题就会消失。