gpt4 book ai didi

java - Sonar JaCoCoSensor 忽略 jacoco 分析

转载 作者:行者123 更新时间:2023-12-05 07:30:22 25 4
gpt4 key购买 nike

我有一个多模块 Maven 项目,它有模块单元测试和端到端服务测试(不完全是集成测试,因为它们实际上没有与任何东西集成),我们在特定的边界进行模拟正在测试的服务。后一组测试(使用 mockmvc 在部署前测试所有层)生成一个 jacoco.exec(或 jacoco-it.exec,具体取决于我尝试的 maven 配置),它清楚地表明测试有助于代码覆盖。事实上,绝大多数覆盖都在这一层(每个 jacoco 大约 40%)。

当我在本地或通过 jenkins 对项目运行 Sonar 分析时,我得到以下顶级测试:

[INFO] Sensor JaCoCoSensor [java]

[INFO] Analysing /Users/tokkov/Documents/workspace/platform/customer/assemblies/service/target/jacoco.exec

[WARNING] Coverage information was not collected. Perhaps you forget to include debug information into compiled classes?

[INFO] Sensor JaCoCoSensor [java] (done) | time=164ms

于是sonar找到了jacoco分析。它找到编译后的代码(将 jars 解压到构建目录并使用 sonar.java.binaries 指定位置),编译后的代码确实有调试信息(使用 javap -l 验证),但它仍然举起手来继续前进。

知道为什么 Sonar 会忽略 jacoco 报告吗?我在某处缺少配置吗?它愉快地吞噬了其他模块中的所有 jacoco.exec 报告,只是这个模块没有。

<sonar.java.binaries>${project.build.directory}/class-fix</sonar.java.binaries>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.jacoco.reportPaths>${project.build.directory}/jacoco.exec</sonar.jacoco.reportPaths>

版本:Sonarqube v 7.1(build 11001),JaCoCo maven 插件 v 0.8.1

最佳答案

这是 pom.xml 中适合我的配置:

    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
<sonar.language>java</sonar.language>

和 jacoco 插件设置在同一个 pom.xml 中:

        <plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<configuration>
<destFile>${sonar.jacoco.reportPath}</destFile>
<append>true</append>
</configuration>
<executions>
<execution>
<id>agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>

关于java - Sonar JaCoCoSensor 忽略 jacoco 分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52393507/

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