40

要求:

  • 带有 PHPUnit(6.9) 的 Netbeans
  • 编辑:同样适用于,例如,PHPStorm

如何:

  • 从代码覆盖范围中排除行。
  • 从代码覆盖范围中排除代码块(行)。
4

3 回答 3

72

要忽略方法代码块:

/**
 * @codeCoverageIgnore
 */
function functionToBeIgnored() {
    // function implementation
}

要忽略类代码块:

/**
 * @codeCoverageIgnore
 */
class Foo {
    // class implementation
}

正如@david-harkness 所说,忽略个别行:

// @codeCoverageIgnoreStart
print 'this line ignored for code coverage';
// @codeCoverageIgnoreEnd

更多信息可以在忽略代码块标题下的PHPUnit 文档中找到。

于 2014-02-09T06:14:30.950 回答
45

如果您试图实现 100% 的代码覆盖率,但有一行或多行无法测试,您可以在它们周围加上特殊的注释。它们将在代码覆盖率报告中被忽略。

if (($result = file_get_contents($url)) === false) {
    // @codeCoverageIgnoreStart
    $this->handleError($url);
    // @codeCoverageIgnoreEnd
}

编辑:我发现 Xdebug 经常认为右括号是可执行的。:( 如果发生这种情况,请将结束标签移到其下方。

于 2011-02-07T01:30:58.410 回答
3

首先确保您拥有最新最好的 phpunit,否则可能会丢失代码忽略。接下来创建一个phpunit.xml看起来像这样的文件:

<phpunit colors="true">
    <filter>
        <blacklist>
            <file>file1.php</file>
            <file>file2.php</file>
        </blacklist>
    </filter>
</phpunit>
于 2011-02-07T02:18:08.917 回答