要求:
如何:
答案 0 :(得分:38)
忽略方法代码块:
/**
* @codeCoverageIgnore
*/
function functionToBeIgnored() {
// function implementation
}
忽略类代码块:
/**
* @codeCoverageIgnore
*/
class Foo {
// class implementation
}
正如@ david-harkness所说,忽略个别界限:
// @codeCoverageIgnoreStart
print 'this line ignored for code coverage';
// @codeCoverageIgnoreEnd
可以在忽略代码块标题下的PHPUnit Documentation中找到更多信息。
答案 1 :(得分:25)
如果您尝试实现100%的代码覆盖率,但有一条或多条线无法测试,则可以使用特殊注释将它们包围起来。它们将在代码覆盖率报告中被忽略。
if (($result = file_get_contenst($url)) === false) {
// @codeCoverageIgnoreStart
$this->handleError($url);
// @codeCoverageIgnoreEnd
}
编辑:我发现Xdebug经常认为结束括号是可执行的。 :(如果发生这种情况,请将结束标记移到它下面。
答案 2 :(得分:3)
首先确保您拥有最新且最好的phpunit,否则代码ignore可能会丢失。接下来创建一个看起来像这样的phpunit.xml
文件:
<phpunit colors="true">
<filter>
<blacklist>
<file>file1.php</file>
<file>file2.php</file>
</blacklist>
</filter>
</phpunit>