Java EclEmma覆盖工具是否执行节点、边、条件或路径覆盖?
我有一个关于EclEmma覆盖工具的问题 EclEmma覆盖工具是否执行节点、边、条件或路径 新闻报道?说明Java EclEmma覆盖工具是否执行节点、边、条件或路径覆盖?,java,eclipse,code-coverage,eclemma,Java,Eclipse,Code Coverage,Eclemma,我有一个关于EclEmma覆盖工具的问题 EclEmma覆盖工具是否执行节点、边、条件或路径 新闻报道?说明 谢谢EclEmma-是一个基于Java代码覆盖率库的Eclipse插件,名为,它执行Java字节码分析。JaCoCo提供的覆盖范围计数器说明。正如您从中看到的,JaCoCo和EclEmma提供 说明覆盖范围 分支机构覆盖率 线路覆盖率 圈复杂度 我不知道你们称之为节点覆盖率,我猜你们称之为边缘覆盖率的是分支覆盖率 关于条件保险- 条件覆盖率可以通过两个测试来满足a=true,b=fa
谢谢EclEmma-是一个基于Java代码覆盖率库的Eclipse插件,名为,它执行Java字节码分析。JaCoCo提供的覆盖范围计数器说明。正如您从中看到的,JaCoCo和EclEmma提供
- 说明覆盖范围
- 分支机构覆盖率
- 线路覆盖率
- 圈复杂度
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在两次测试后报告100%的覆盖率-a=true,b=true
和a=false,b=false
void fun(boolean a, boolean b) {
if (a) { /* ... */ }
if (b) { /* ... */ }
}