当前位置: 首页 > 知识库问答 >
问题:

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

段溪叠
2023-03-14

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

我使用SonarQube和Jacoco来导入测试覆盖结果(https://docs.sonarqube.org/display/PLUG/Java单元测试和覆盖结果导入)。一切都很好,直到我用某种方法解决了每个问题。

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)

如果我删除了每个文件,那么测试覆盖率会正确生成,但对于每个文件,我得到0%的覆盖率。

只有当我将它与sonarqube集成时,才会发生这种情况,如果我在本地运行jacoco,它会完美工作。

我们使用SonarQube Scanner3.3.0.1492,SonarQube服务器7.5.0。

共有1个答案

仲孙鸿飞
2023-03-14

在Google中搜索关键字sonarqubekotlinjacoco

超出文件范围

揭示了以下页面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甚至更好的最新版本,即截至2021年9月8日的0.8.7

 类似资料:
  • 我在声纳中的代码覆盖率显示为0%,这不是真的,因为我有单元测试。 格拉德尔 当我打开inside然后我可以看到成功的单元测试。 我在Jenkins环境中运行作为

  • 我的代码运行在具有单独JVM的单独虚拟机上。我想在此虚拟机上以tcpserver模式设置JaCoCo代理以收集覆盖率数据。然后,我将在我的maven项目中以tcpclient模式设置JaCoCo代理,以连接到上面提到的VM并获取覆盖率数据。 问题是代理不收集任何覆盖数据。在中创建了覆盖率数据文件,但该文件为空。 下面是代理选项:-Java agent:/usr/xx/plugins/org . j

  • 这是一个重要的可量化指标,如果代码覆盖率很高,你就可以放心的修改代码,在发版本的时候也能睡个安稳觉。否则就是拆东墙补西墙,陷入无尽的 bug 诅咒中。 那么在 OpenResty 里面如何看到代码覆盖率呢?其实很简单,使用 LuaCov 可以很方便的实现。 我们先了解下 LuaCov,这是一个针对 Lua 脚本的代码覆盖率工具,通过 luarocks 来安装: luarocks install l

  • Jacoco插件在jenkins报告中显示0%的覆盖率,但当我在本地系统中运行相同的命令时,Jacoco会正确生成报告。我正在使用以下命令: mvn-s xyz/settings.xml-f xyz/xyz/pom.xml清洁安装org.jacoco 所以当我在jenkins中运行这个命令时,它会生成错误的报告。我已经检查了它在工作区目录对应的项目在詹金斯。它显示每个项目的0%覆盖率。但是当我在本

  • 当我的单元测试通过Emma被“覆盖”时,我试图让Sonar IT代码覆盖为我工作。 我的情况: (1)我有大量使用JMockit的单元测试。删除JMockit不是一个选项。我想获得这些测试的单元测试覆盖报告。 (2)我进行了集成测试,简单地用不同的输入场景运行应用程序的核心服务器端部分(这是一个Spring web应用程序)。我想要它的代码覆盖报告。 对于第(1)部分,我选择使用Emma进行单元测

  • 我正在尝试使用JaCoCo-javaagent传递VM参数来获得代码覆盖率 -Java agent:/test/jaco co/jaco agent . jar = dest file =/test/jaco co/jaco co . exec,includes=com。*,append=true 我能在jacoco中获得一些价值。执行文件,但无法获取覆盖率报告。我怎样才能把jacoco转化成。执