尝试将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。
答案 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的链接,而页面则包含了问题的表达方式,包括解释为什么它会影响SonarQube。
因此,请确保使用JaCoCo版本0.8.3
或什至更好的最新版本0.8.4
。