我有一个关于EclEmma覆盖工具的问题,
EclEmma覆盖工具是否执行节点或边缘或条件或路径 报道?解释
谢谢
答案 0 :(得分:0)
EclEmma - 是基于Java代码覆盖库的Eclipse插件,名为JaCoCo,用于执行Java字节码分析。由JaCoCo can be found in its documentation提供的覆盖计数器的描述。正如你所看到的那样--JaCoCo和EclEmma提供
不知道你所谓的节点覆盖范围,我猜你称之为边缘覆盖 - 是分支覆盖。
关于条件覆盖范围 - Wikipedia says
if (a && b) { /* ... */ }
条件覆盖率可以通过两个测试
来满足a=true, b=false
,a=false, b=true
在Java &&
是短路运算符的情况下看起来有点奇怪 - 第二次测试不能触发“b”值的检索。
关于路径覆盖 - JaCoCo没有提供它,可以使用以下示例演示:
void fun(boolean a, boolean b) {
if (a) { /* ... */ }
if (b) { /* ... */ }
}
不计算异常,通过此方法有4条路径。因此,对于完整路径覆盖,将需要4个测试 - a = true, b = true
,a = true, b = false
,a = false, b = true
和a = false, b = false
。然而,JaCoCo和EclEmma仅在2次测试后报告100%的覆盖率 - a = true, b = true
和a = false, b = false
。