根据Quarkus文档,为了让JaCoCo考虑没有用@QuarkusTest注释的测试类,我们唯一需要做的就是配置JaCoCo插件来执行目标准备代理。
我补充了这一点,正如文件所示:
<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>
</executions>
</plugin>
尽管如此,我的单元测试还没有被考虑在内。
我的quarkus版本是2.10.3.Final,jacoco插件设置为0.8.8。
我使用jupiter 5.8.2进行单元测试。
感谢
Quarkus IO
正如文档所说,只有在至少运行一个@QuarkusTest的情况下,此设置才有效。jacoco标准设置可能会解决您的问题。在maven构建日志中,您可以读取如下两行:
[INFO] --- jacoco-maven-plugin:0.8.8:report (jacoco-report) @ project-name ---
[INFO] Skipping JaCoCo execution due to missing execution data file.
标准jacoco配置:
<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>
<destFile>${project.build.directory}/jacoco-quarkus.exec</destFile>
<append>true</append>
</configuration>
</execution>
</executions>
</plugin>
注意:使用@QuarkusTest注释的标准配置测试不由jacoco插件管理