java - SonarQube 警告 "Insufficient branch coverage by unit tests"

标签 java sonarqube

有人知道“单元测试的分支覆盖率不足”这个问题吗?我的类(class)代码覆盖率是 99%,但我不断收到同一类(class)的 Sonar 警告“单元测试的分支覆盖率不足:单元测试还需要覆盖 111 个分支才能达到 65.0% 的分支覆盖率的最低阈值。” 通常,此错误是由于 if/else 条件覆盖不足,因为我们必须处理正/负两种情况。有人知道关于此警告的其他信息吗?

谢谢 萨克

最佳答案

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

例如:

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

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

请注意 try with resources,因为这会在字节码中生成大量分支(并且您在源代码中看不到它们)并且您很可能没有涵盖所有分支。

关于java - SonarQube 警告 "Insufficient branch coverage by unit tests",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32093877/

相关文章:

java - 为什么我无法证明我的代码中需要 AtomicReference?

java - 如何使用java访问名称中包含空格字符的文件?

java - MySQL 插入数据时出现错误 "Duplicate entry ' ' for key "

c++ - gcovr - 在 xml 覆盖范围 Cobertura 报告中是否存在损坏文件名的已知问题?

jenkins - Jacoco 0% 代码覆盖率

Java 骰子游戏生成新数字时遇到问题

java - 在列表最佳解决方案中查找给定数字的出现次数

java - Sonar 在第一次成功运行后不断失败

plugins - Sonar 插件开发分步指南

sonarqube - sonarqube 中 sonar.sources 和 sonar.tests 的区别