You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置quarkus-jacoco统计未标注@QuarkusTest的测试覆盖率遇阻

解决JaCoCo无法统计未标注@QuarkusTest的单元测试问题

针对你遇到的问题,可以从以下几个方向排查和修复:

1. 补充JaCoCo报告生成配置

你当前仅配置了prepare-agent目标来收集覆盖率数据,但缺少报告生成的执行逻辑,导致即使数据被收集也无法生成包含所有测试的覆盖率报告。需在插件配置中添加report执行节点:

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>${jacoco.version}</version>
    <executions>
      <execution>
        <id>prepare-agent</id>
        <goals>
          <goal>prepare-agent</goal>
        </goals>
        <configuration>
          <exclClassLoaders>*QuarkusClassLoader</exclClassLoaders>
          <destFile>${project.build.directory}/jacoco-quarkus.exec</destFile>
          <append>true</append>
        </configuration>
      </execution>
      <!-- 添加报告生成执行逻辑 -->
      <execution>
        <id>report</id>
        <goals>
          <goal>report</goal>
        </goals>
        <configuration>
          <dataFile>${project.build.directory}/jacoco-quarkus.exec</dataFile>
          <outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory>
        </configuration>
      </execution>
    </executions>
</plugin>

2. 确认测试执行命令

确保使用正确的Maven命令触发测试并生成报告:

mvn clean test jacoco:report

若已将report目标绑定到test阶段,直接执行mvn clean test即可自动生成报告。

3. 检查测试类的执行范围

  • 确认未标注@QuarkusTest的测试类位于src/test/java目录下,且符合Maven默认测试类命名规则(如以Test结尾)。
  • 排查Maven Surefire插件配置,确保没有通过includes/excludes规则排除目标测试类。

4. 验证类加载器排除配置

暂时注释掉exclClassLoaders配置,重新执行测试看是否能统计到覆盖率。若可以,说明原配置可能误排除了测试类使用的类加载器,需调整匹配规则。

5. 检查版本兼容性

尝试将JaCoCo插件升级到0.8.9或0.8.10版本(与Quarkus 2.10.3.Final兼容),部分版本适配问题可能导致数据收集异常。

内容的提问来源于stack exchange,提问作者Manollo Guedes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 12:31:04