gpt4 book ai didi

code-coverage - 使用 Jenkins Sonar 插件成功构建后,Sonar 不显示代码覆盖率

转载 作者:行者123 更新时间:2023-12-03 20:39:13 29 4
gpt4 key购买 nike

我正在尝试使用 Sonar 和 Jenkins 获得代码覆盖率。我看到 Jenkins 的 Sonar 插件成功执行 JUnit 测试用例并成功完成构建。但是 Sonar 不显示项目的代码覆盖率结果(始终显示 0.0% 作为代码覆盖率)。但 Sonar 确实显示“单元测试成功”。

我正在将 Maven 与 Jenkins 和 Sonar 一起使用。

执行 Sonar 插件时,我在 Jenkins 日志中收到以下消息:

由于没有转储 JaCoCo 执行数据,因此项目覆盖率设置为 0%:.../sonar/target/jacoco.exec

任何人都可以帮助我如何在任何 Sonar 项目中获得正确的代码覆盖率。

最佳答案

仅仅因为 Sonar 正确调用了 Surefire(并且您收到了“单元测试成功”消息)并不意味着 JaCoCo 检测了您的代码。

尝试直接执行 JaCoCo。您可能会发现 JaCoCo 直接失败的原因:
mvn jacoco:prepare-agent test jacoco:report
JaCoCo 将 jacoco.exec 及其 XML/HTML 报告放置在 target/jacoco 中。否则它会失败,希望您能更好地了解原因。

一个非常常见的问题是,如果您完全更改了 Surefire argLine,JaCoCo javaagent 将不会运行,因为 jacoco:prepare-agent只需设置 argLine 属性,在这种情况下,可以方便地忽略该属性。你可以设置prepare-agent的propertyName将属性添加到其他内容(如 jacocoArgLine)并将其包含在您的 argLine 配置中:
<argLine>-Xmx1024m ${jacocoArgLine}</argLine>

关于code-coverage - 使用 Jenkins Sonar 插件成功构建后,Sonar 不显示代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18446045/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com