wam_3000 2024-08-15 18:30 采纳率: 6.7%
浏览 46

springboot生成Jacoco测试覆盖率报告

目前我想在springboot里通过mvn clean test 命令生成Jacoco的测试覆盖率的报告,但执行完后,单体测试都通过了,但target下没有jacoco.exec文件,也没有测试报告
JDK的版本是:JDK21,springboot的版本是:3.1.5,maven的版本是:3.8.8
以下是我的pom.xml里的Jacoco的插件

        <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-plugin</artifactId>
              <configuration>
                <argLine>
                  -XX:+EnableDynamicAgentLoading
                  -Xshare:off
                </argLine>
              </configuration>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.8</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                        <configuration>
                            <destFile>${project.build.directory}/jacoco/jacoco.exec</destFile>
                        </configuration>
                    </execution>
                    <execution>
                        <id>report</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                        <configuration>
                            <dataFile>${project.build.directory}/jacoco/jacoco.exec</dataFile>
                            <outputDirectory>${project.build.directory}/report/jacoco</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>


执行完mvn clean test 后的结果如下图

img

  • 写回答

2条回答 默认 最新

  • 一直免费一直爽 2024-08-15 18:31
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据您提供的pom.xml文件和执行结果,问题可能出在maven-surefire-plugin的配置上。您可以尝试将maven-surefire-plugin的版本从3.0.0更改为2.22.2,并添加以下配置:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.22.2</version>
        <configuration>
            <argLine>
                -XX:+EnableDynamicAgentLoading
                -Xshare:off
            </argLine>
            <includes>
                <include>**/*Test.java</include>
            </includes>
        </configuration>
    </plugin>
    

    这将确保只有以Test.java结尾的测试类被执行。同时,请确保您的测试类确实以Test.java结尾,否则它们将不会被执行。

    另外,您提到JDK的版本是JDK21,但实际上应该是JDK 11或更高版本。请确保您使用的是支持的JDK版本。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月15日