如何知道xdebug是否正确?

时间:2019-02-21 10:04:40

标签: php phpunit xdebug php-code-coverage

例如,我正在运行一些测试,而有些报告则没有意义。

enter image description here

enter image description here

我还有另一个例子: Why xdebug marks 587 and 588 as not executed and 589 as executed?

2 个答案:

答案 0 :(得分:1)

如果没有switch不匹配的测试,则xdebug覆盖率是正确的。

如果仅在测试中从开关中返回执行,则永远不会到达/执行方法的结尾(隐式的void返回),因此不会被覆盖。

您可以确信,此时 并没有问题,但是随着时间的流逝,它变得很脆弱。如果您添加了第三种可能性却忘了处理该怎么办?依此类推。

覆盖率在这里发挥了作用-它指出了未经测试的(潜在)代码路径。

答案 1 :(得分:1)

通过查看您提供的示例,xdebug实际上是“正确的”,因为return语句都在开关内,所以您永远不会到达该函数的最后一行。

还有一些选项允许“严格”覆盖,以排除递归调用的代码,因此请注意,如果这不是您期望的行为,请不要运行其中的一些