尝试将Jacoco代码coverage导入SonarQube时出现问题:无法导入文件的coverage信息,coverage数据无效

时间:2019-05-14 08:41:07

标签: kotlin sonarqube jacoco

尝试将Jacoco代码覆盖率导入SonarQube时遇到一些问题。

我正在将SonarQube与Jacoco一起用于导入测试覆盖率结果(https://docs.sonarqube.org/display/PLUG/Java+Unit+Tests+and+Coverage+Results+Import)。一切运行良好,直到我以某种方法 forEach 被阻止为止。

ERROR: Cannot import coverage information for file, coverage data is invalid. 
java.lang.IllegalStateException: Line 29 is out of range in the file (lines: 28)

如果我删除 forEach 文件,则可以正确生成测试覆盖率,但是使用 forEach ,我得到0%覆盖率。

仅当我将其与sonarqube集成时才会发生这种情况,如果我在本地运行jacoco则效果很好。

我们使用SonarQube Scanner 3.3.0.1492,SonarQube服务器7.5.0。

1 个答案:

答案 0 :(得分:0)

在Google中通过关键字sonarqube kotlin jacoco

进行搜索
  

is out of range in the file

在页面https://community.sonarsource.com/t/sonar-kotlin-coverage-fails-due-to-line-is-out-of-range-errors/3201/18之后显示,该页面指出问题已在JaCoCo版本0.8.3中得到修复,并且包含指向页面https://github.com/jacoco/jacoco/issues/763的链接,而页面If you can see this picture some texts in russian and other in english则包含了问题的表达方式,包括解释为什么它会影响SonarQube。

因此,请确保使用JaCoCo版本0.8.3或什至更好的最新版本0.8.4