EclEmma覆盖工具是否执行节点、边缘、条件或路径覆盖



我有一个关于EclEmma覆盖工具的问题

EclEmma覆盖工具是否执行节点、边、条件或路径新闻报道解释

谢谢

EclEmma是一个基于Java代码覆盖库的Eclipse插件,名为JaCoCo,用于分析Java字节码。JaCoCo提供的覆盖率计数器的说明可在其文档中找到。正如你所看到的,JaCoCo和EclEmma提供

  • 说明覆盖范围
  • 分支机构覆盖范围
  • 线路覆盖范围
  • 和圈复杂性

不知道你称之为节点覆盖,我猜你称之的边缘覆盖是分支覆盖。

关于条件覆盖-维基百科称

if (a && b) { /* ... */ }

条件覆盖可以通过两个测试a=true, b=falsea=false, b=true来满足

&&是短路运算符的Java中,第二次测试无法触发"b"值的检索,这似乎有点奇怪。

关于路径覆盖-JaCoCo没有提供,可以使用以下示例演示什么:

void fun(boolean a, boolean b) {
if (a) { /* ... */ }
if (b) { /* ... */ }
}

不算例外,有4条路径通过此方法。因此,对于全路径覆盖,将需要4个测试——a = true, b = truea = true, b = falsea = false, b = truea = false, b = false。然而,JaCoCo和EclEmma仅在两次测试(a = true, b = truea = false, b = false)后就报告了100%的覆盖率。

最新更新