2

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

在此处输入图像描述

在此处输入图像描述

我还有另一个例子: 为什么 xdebug 将 587 和 588 标记为未执行而 589 标记为已执行?

4

2 回答 2

2

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

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

您可以确信此时这里没有问题,但随着时间的推移,它会变得脆弱。如果您添加了第三种可能性,但忘记处理它怎么办?等等。

Coverage 在这里完成了它的工作——它指出了一个没有被测试的(潜在的)代码路径。

于 2019-02-21T15:56:35.883 回答
1

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

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

于 2019-02-21T15:58:21.973 回答