隐藏代码覆盖率报告中的私有+受保护方法?

时间:2017-02-10 19:25:31

标签: phpunit code-coverage xdebug

我可以隐藏私人&受PhpUnit代码覆盖率报告保护的方法?

我知道其他一些人建议人们应该“间接地”测试它们但我真的不关心它们是否被调用,我认为这对我来说完全是浪费时间为私有实用程序方法设置i(L,X,Y) :- listof(Tup,interval_tuple(X,Y,Tup),L).

如果你需要看到,那么这是我的@covers

phpunit.xml

code coverage

1 个答案:

答案 0 :(得分:2)

嗯,据我所知,它不是PHPUnit功能,你必须fork php-code-coverage项目并编辑源代码。可能这不是你正在寻找的答案,但似乎这是目前唯一的选择。

令人欣慰的是,变化非常简单。您可以修改CodeCoverage::getLinesToBeIgnored method并添加额外条件

if (get_class($token) == 'PHP_Token_FUNCTION') {
    $methodVisibility = $token->getVisibility();

    if ($methodVisibility == 'private' || $methodVisibility == 'protected') {
       $endLine = $token->getEndLine();

       for ($i = $token->getLine(); $i <= $endLine; $i++) {
           self::$ignoredLines[$filename][$i] = TRUE;
       }
    }
}

enter image description here 如果不使用getSomething或任何其他文档块,则会忽略方法@codeCoverageIgnore