【发布时间】:2013-01-01 00:30:10
【问题描述】:
是否可以从 PHPUnit 的代码覆盖范围内强制排除文件夹?
我遇到的问题是,我有一个 Symfony 1.4 项目,它的文件夹位于 ./lib/vendor/symfony/*。我想以递归方式排除 ./lib/vendor/* 中的任何内容。
现在,我想排除它们,无论它们是否被我的测试隐式覆盖,即我不想看到这些文件夹。因此,我已将此位添加到我的 phpunit.xml 配置文件中,但无论我做什么,它似乎都没有排除这些文件夹:
<filter>
<whitelist>
<exclude>
<directory>./lib/vendor/*</directory>
<directory>./lib/vendor/symfony/lib/*</directory>
</exclude>
</whitelist>
</filter>
在我看来,当代码被命中并且 XDebug 注意到它时,PHPUnit 无论如何都会将它包含在代码覆盖范围内。这样做的缺点是,这个代码已经被 Symfony 开发人员测试过了,所以不需要把它包含在我的覆盖率报告中,弄乱我的数字:P
【问题讨论】:
-
您是否尝试从路径中删除
*? -
@j0k 是的,我试过了,几乎尝试了所有东西,vendor、vendor/、vendor/*、vendor/*/ 和 vendor/*/*
-
我只是遇到了类似的问题,我解释上述结构的方式是排除
<directory>不被包含在白名单中乙>。与<blacklist><exclude>不同,后者将排除<directory>'s 不被包含在黑名单中。
标签: symfony1 phpunit symfony-1.4 code-coverage