SonarQube警告“单元测试的分支覆盖率不足”

时间:2015-08-19 11:12:15

标签: java sonarqube

有人知道这个问题“单位测试的分支覆盖率不足”吗?我的班级代码覆盖率为99%,但我不断收到相同类别的声纳警告“单元测试的分支覆盖率不足:111个分支机构需要通过单元测试覆盖,以达到65.0%分支覆盖率的最低阈值。” 通常,由于if / else条件的覆盖率不足而发生此错误,因为我们必须处理正/负两种情况。有没有人知道这个警告呢?

由于 SACH

2 个答案:

答案 0 :(得分:6)

这意味着您的代码中有一些未涵盖的分支。

例如:

boolean foo() {
  return a || b || c; 
}

如果在你的测试中你总是有一个是真的,那么你确实覆盖了这条线,但不是所有的分支。

请注意尝试使用资源,因为这会在字节码中生成很多分支(并且您不会在源代码中看到它们),并且您很可能无法覆盖所有这些分支。

答案 1 :(得分:0)

这是一个很好的维基百科页面,解释了不同覆盖率指标之间的差异: link

分支机构覆盖范围简短涵盖if-else情况,您需要测试两种情况以达到100%覆盖率。