【问题标题】:“No information about coverage per test.” from Sonar with Jacoco Maven build“没有关于每次测试覆盖率的信息。”来自 Sonar 和 Jacoco Maven 构建
【发布时间】:2015-10-15 11:49:32
【问题描述】:

在尝试执行 Sonar 以导入使用 jacocoagent.jar 在服务器上生成的 jacoco-it.exec 文件时,我收到以下消息:

[INFO] [09:54:32.420] 传感器 JaCoCoItSensor... [信息] [09:54:32.462] 分析 /../jenkins/jobs/../jacoco-it.exec [INFO] [09:54:51.385] 没有关于每次测试覆盖率的信息

我已验证 jacococ-it.exec 文件本身确实包含数据 (385 MB),因此它肯定在捕获信息,但声纳无法协调它,我需要帮助修复它。

我正在使用:
一个多模块 Maven 项目
声纳 4.5.1
Jenkins 声纳插件 2.1
甲骨文 11g
jacoco 0.7.4
junit 4.11

Sonar 可以很好地创建和使用 UT 文件 jacoco.exec,但是当它显示 IT 结果时我得到 0%。

[编辑] - 进一步澄清
1. 我们有 jacocoagent.jar 监控应用服务器上的 jvm
2. Jenkins 作业针对 #1 中的应用程序服务器运行一组 selenium 测试
3. 将 jacoco-it.exec 文件从应用服务器复制到声纳可以读取的位置。为此,我将覆盖 jacoco 插件的声纳路径。
4. 我收到上面的消息说声纳找不到覆盖信息

selenium 测试作为 mvn 的集成测试运行:
mvn org.jacoco:jacoco-maven-plugin:prepare-agent-integration clean package install

【问题讨论】:

  • 请添加您的 Maven 配置。我使用 JaCoCo,我没有问题(但我使用 SonarQube 5.1)。我在这个主题中展示了我的配置:Not getting the coverage on new code in sonar dashboard
  • 只是要明确一点:这里没有关于每个测试的覆盖率的信息是要提到你不会有关于哪个测试覆盖了哪条线的信息(请参阅此处的每个测试部分的覆盖率:docs.sonarqube.org/display/PLUG/…
  • 正如@agabrys 所说,请更准确地描述您的配置,这听起来与您希望涵盖的类不在 jacoco-it 所在的同一模块中有关。 exec 文件被分析。
  • 我们没有在 maven pom 中专门为 jacoco 项目配置任何东西

标签: java jenkins sonarqube sonarqube-4.5


【解决方案1】:

尝试强制使用 jacoco-plugin 的旧版本(例如 0.7.3),看看是否有任何不同。这对我有类似的问题有所帮助。我认为某些版本存在已知问题。

【讨论】:

  • 这是当前版本,用于 jenkins 构建和监控 jvm 环境的代理。
  • 是的,但请尝试降级插件以查看是否有帮助。最新版本的插件有时会出现问题。示例:mvn clean org.jacoco:jacoco-maven-plugin:0.7.4.201502262128:prepare-agent install
  • 我遇到的问题非常相似(除了我使用的是 PostgreSQL 数据库),我使用的是 v0.7.3.201502191951。命令 - mvn clean org.jacoco:jacoco-maven-plugin:0.7.3.201502191951:prepare-agent install 为我工作。感谢您的意见。
猜你喜欢
  • 2013-05-13
  • 2018-12-23
  • 2015-02-02
  • 2013-02-07
  • 2013-03-16
  • 2022-07-26
  • 2015-01-07
  • 2012-06-11
  • 2015-05-11
相关资源
最近更新 更多