【发布时间】:2017-03-01 20:13:20
【问题描述】:
我使用sonarqube做线路覆盖分析,但是报告的结果是错误的。 例如下面的 if 方法:
if(a != null ){
system.out.print("Hello");
}
if 条件被报告为不被单元测试覆盖,即未执行。 但是,里面的逻辑 system.out.print("Hello") 被报告为被单元测试覆盖了。这不合逻辑,对吧?
【问题讨论】:
标签: sonarqube
我使用sonarqube做线路覆盖分析,但是报告的结果是错误的。 例如下面的 if 方法:
if(a != null ){
system.out.print("Hello");
}
if 条件被报告为不被单元测试覆盖,即未执行。 但是,里面的逻辑 system.out.print("Hello") 被报告为被单元测试覆盖了。这不合逻辑,对吧?
【问题讨论】:
标签: sonarqube
这实际上不是 SonarQube 的问题,而是您的覆盖引擎的问题。 SonarQube 仅转发您的覆盖引擎报告的内容。
也就是说,您可能误解了 SonarQube 界面中的标记,尽管没有屏幕截图很难确定。如果您在 if 旁边看到一个斜条纹标记,那么 SonarQube 会告诉您该行被部分覆盖。也就是说,代码中有多个路径,并且在您的测试中只采用其中的一些路径。具体来说,听起来您正在测试条件为真的路径。我猜你没有测试条件为假的路径。
【讨论】: