我有一个PHPUnit测试,测试名为HelpTokenizerTest的类。这个类实现TokenizerInterface。由于某种奇怪的原因,我无法从代码覆盖范围中排除TokenizerInterface。从PHPUnit代码覆盖率中排除PHP接口
尽管使用@codeCoverageIgnore或者甚至@ codeCoverageIgnoreStart/End,它在代码覆盖率报告中未显示。
任何想法?
我不希望接口包含在我的测试覆盖范围内,因为它什么都不做。测试接口有什么意义。
我有一个PHPUnit测试,测试名为HelpTokenizerTest的类。这个类实现TokenizerInterface。由于某种奇怪的原因,我无法从代码覆盖范围中排除TokenizerInterface。从PHPUnit代码覆盖率中排除PHP接口
尽管使用@codeCoverageIgnore或者甚至@ codeCoverageIgnoreStart/End,它在代码覆盖率报告中未显示。
任何想法?
我不希望接口包含在我的测试覆盖范围内,因为它什么都不做。测试接口有什么意义。
使用phpunit.xml时,您可以设置过滤器来排除具有特定名称的文件,特别是文件夹或具有特定扩展名的文件。
例子:
<testsuite name="Application Test Suite">
<directory>./application/</directory>
</testsuite>
<filter>
<blacklist>
HERE
</blacklist>
or alternatively
<whitelist>
<directory suffix=".php">../library/</directory>
<directory suffix=".php">../application/</directory>
<exclude>
AND HERE
<directory suffix=".phtml">../application/</directory>
</exclude>
</whitelist>
</filter>
请注意,如果您定义白名单,PHPUnit将忽略黑名单,因此您必须在白名单中使用“
这就是我最终做的。感谢塞缪尔和大卫! – 2011-06-02 22:19:11
您可以使用@codeCoverageIgnore为注释在文件的开头获得100% 0/0覆盖。
<?php // @codeCoverageIgnoreStart
interface MyInterface
{
public function myfunction();
}
请注意,它不起作用的评论块。
问题上PHPUnit的github上开:https://github.com/sebastianbergmann/phpunit/issues/497
您使用XML配置或测试套件? – 2011-06-02 21:52:13