我的项目包结构是app/test/java 单元测试和组件测试位于同一个包下。 组件测试配置文件中 jacoco-maven 插件的 Maven pom.xml 如下所示:
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<configuration>
<dataFile>${project.testresult.directory}/coverage/jacoco-ct/jacoco-ct.exec</dataFile>
<outputDirectory>${project.testresult.directory}/coverage/jacoco-ct</outputDirectory>
<destFile>${project.testresult.directory}/coverage/jacoco-ct/jacoco-ct.exec</destFile>
<excludes>
<exclude>**/model/**</exclude>
<exclude>**/models/**</exclude>
<exclude>**/queries/**</exclude>
<exclude>**/**/queries</exclude>
<exclude>**/**/query</exclude>
<exclude>**/generated/**</exclude>
<exclude>**/**/constants/**</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>pre-unit-tests</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
在 Jenkins 文件中,我使用以下代码发布测试结果
jacoco(execPattern: 'app/target/test-results/coverage/jacoco-ct/jacoco-ct.exec',
classPattern: 'app/target/test-results/coverage/jacoco-ct/**.class',
sourcePattern: 'src/main/java',
exclusionPattern: 'src/test*')
在 Jenkins 的 jacoco 代码覆盖发布阶段,我得到以下结果:
[JaCoCo plugin] Collecting JaCoCo coverage data...
[JaCoCo plugin] app/target/test-results/coverage/jacoco-ct/jacoco-ct.exec;app/target/test-results/coverage/jacoco-ct/**.class;src/main/java; locations are configured
[JaCoCo plugin] Number of found exec files for pattern app/target/test-results/coverage/jacoco-ct/jacoco-ct.exec: 0
[JaCoCo plugin] Saving matched execfiles:
[JaCoCo plugin] Saving matched class directories for class-pattern: app/target/test-results/coverage/jacoco-ct/**.class:
[JaCoCo plugin] Saving matched source directories for source-pattern: src/main/java:
[JaCoCo plugin] Source Inclusions: **/*.java,**/*.groovy,**/*.kt,**/*.kts
[JaCoCo plugin] Source Exclusions:
[JaCoCo plugin] Loading inclusions files..
jacoco 代码覆盖率插件无法获取 exec 文件。尽管 jacoco publisher 能够从同一文件夹中生成的 index.html 中获取结果。我需要 jacoco 代码覆盖才能工作。任何帮助表示赞赏