我有一个PHPUnit测试,用于测试名为HelpTokenizerTest的类。该类实现TokenizerInterface。出于某些奇怪的原因,我无法从代码覆盖中排除TokenizerInterface。
尽管使用了@codeCoverageIgnore甚至@codeCoverageIgnoreStart / End,它仍然显示在未涵盖的代码覆盖率报告中。
有什么想法吗?
我不希望我的测试覆盖中包含该接口,因为它没有做任何事情。测试接口有什么意义。
答案 0 :(得分:2)
使用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>
答案 1 :(得分:2)
您可以在文件开头使用 @codeCoverageIgnore 作为评论,以获得100%0/0的覆盖率。
<?php // @codeCoverageIgnoreStart
interface MyInterface
{
public function myfunction();
}
请注意,它不会在评论栏中发挥作用。
在PHPUnit&#39; s github:https://github.com/sebastianbergmann/phpunit/issues/497
上打开问题