为什么赢了';t PHPUnit代码覆盖率报告函数是';你没打电话吗?

为什么赢了';t PHPUnit代码覆盖率报告函数是';你没打电话吗?,php,code-coverage,xdebug,Php,Code Coverage,Xdebug,我试图在我的一个项目中获得代码覆盖率,但未调用的函数和类不会被纳入覆盖率计算中。当大块的代码被忽略时,很难看出还有什么(很多)没有被覆盖 在下图中,我希望前三个函数的主体以红色突出显示。在确实执行的函数中未执行的行至少显示为红色 值得一提的是,我正在使用apt安装的PHP7.0.12-1和XDebug 2.4.1-1以及Composer安装的PHPUnit 4.8.27运行Debian测试。代码覆盖率报告应该在计算中包括所有代码,而不仅仅是彩色的内容。您确定要排除未突出显示的代码吗?非高亮显示

我试图在我的一个项目中获得代码覆盖率,但未调用的函数和类不会被纳入覆盖率计算中。当大块的代码被忽略时,很难看出还有什么(很多)没有被覆盖

在下图中,我希望前三个函数的主体以红色突出显示。在确实执行的函数中未执行的行至少显示为红色


值得一提的是,我正在使用apt安装的PHP7.0.12-1和XDebug 2.4.1-1以及Composer安装的PHPUnit 4.8.27运行Debian测试。

代码覆盖率报告应该在计算中包括所有代码,而不仅仅是彩色的内容。您确定要排除未突出显示的代码吗?非高亮显示的代码只是没有测试的代码,红色高亮显示的是已经测试过代码但还没有测试过的方法中的代码位(就像一个只测试了条件的一面的条件语句)

这似乎是XDebug和PHP7.0的一个持续错误,如本期所述:所以,它应该像我期望的那样工作,我的设置没有任何错误。我想我只能等到根本原因(在XDebug中)被发现并修复了。在此之前,线程注意到打开进程隔离是一个解决办法。

没有突出显示的函数不会被计算在内。对于没有突出显示的函数的类,这将导致0/0计数,并将该类标记为100%覆盖。有趣的是,从我的phpunit.xml中删除
processUncoveredFilesFromWhitelist=“true”
,这似乎使它变得更好,尽管并非完全如此。我现在得到的大多数函数都显示为红色,并与我的覆盖范围相比较。但是并非所有人都这么做。还有一些根本没有标记。我不确定模式是什么,但至少我现在了解到了一些东西。从现在开始,设置选项似乎应该会生成更准确的报告,因为它会计算出来,而不是使用启发式。我只是问了一些相关的或类似的问题。这个问题仍然基于xdebug错误吗?