例如,我正在运行一些测试,而有些报告则没有意义。
我还有另一个例子: Why xdebug marks 587 and 588 as not executed and 589 as executed?
答案 0 :(得分:1)
如果没有switch
不匹配的测试,则xdebug覆盖率是正确的。
如果仅在测试中从开关中返回执行,则永远不会到达/执行方法的结尾(隐式的void返回),因此不会被覆盖。
您可以确信,此时 并没有问题,但是随着时间的流逝,它变得很脆弱。如果您添加了第三种可能性却忘了处理该怎么办?依此类推。
覆盖率在这里发挥了作用-它指出了未经测试的(潜在)代码路径。
答案 1 :(得分:1)
通过查看您提供的示例,xdebug实际上是“正确的”,因为return
语句都在开关内,所以您永远不会到达该函数的最后一行。
还有一些选项允许“严格”覆盖,以排除递归调用的代码,因此请注意,如果这不是您期望的行为,请不要运行其中的一些