wam_3000 2024-08-20 09:33 采纳率: 7.3%
浏览 16

springboot项目不生成测试覆盖率报告

目前我想在springboot项目里执行完命令:mvn test 单体测试后,生成Jacoco测试覆盖率报告,目前始终没有生成jacoco.exec 文件,以下是项目的一些代码和截图:

Java的版本是: 21

img

springboot的版本是:3.1.5

img

maven的版本是:3.8.8

img

pom.xml


```xml
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.2</version>
                <configuration>
                    <forkCount>5</forkCount>
                    <reuseForks>true</reuseForks>
                    <argLine>-Dnet.sf.ehcache.disabled=true</argLine>
                </configuration>
            </plugin>
            <!--Jacoco plugin-->
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.12</version>
                <executions>
                    <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                        <configuration>
                            <destFile>${project.build.directory}/jacoco/jacoco.exec</destFile>
                        </configuration>
                    </execution>
                    <execution>
                        <id>default-report</id>
                        <goals>
                        </goals>
                        <configuration>
                            <dataFile>${project.build.directory}/jacoco/jacoco.exec</dataFile>
                            <outputDirectory>${project.build.directory}/report/jacoco</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


执行完 mvn test命令后,后台编译成功,但会出现: Skipping JaCoCo execution due to missing execution data file. 的信息,项目
/target下也没有任何Jacoco的文件




  • 写回答

1条回答 默认 最新

  • 一直免费一直爽 2024-08-20 09:36
    关注

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

    根据您提供的信息,您的pom.xml文件中已经配置了Jacoco插件。但是在执行mvn test命令后,出现了"Skipping JaCoCo execution due to missing execution data file."的提示,说明Jacoco没有生成覆盖率报告。

    首先,请确保您的项目中至少有一个单元测试类。Jacoco需要运行测试来收集覆盖率数据。如果没有测试类,它将跳过覆盖率报告的生成。

    其次,检查pom.xml文件中的Jacoco插件配置是否正确。在<executions>标签内,您需要添加一个名为test的执行目标,以便在运行测试时执行Jacoco插件。以下是一个示例配置:

    <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.12</version>
        <executions>
            <execution>
                <id>default-prepare-agent</id>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
                <configuration>
                    <destFile>${project.build.directory}/jacoco/jacoco.exec</destFile>
                </configuration>
            </execution>
            <execution>
                <id>default-report</id>
                <phase>prepare-package</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>
    

    在这个配置中,我们添加了一个名为default-report的执行目标,并将其阶段设置为prepare-package。这意味着在执行mvn package命令时,Jacoco将生成覆盖率报告。如果您只想在运行测试时生成报告,可以将阶段更改为test

    最后,确保您的Maven和Java版本与Jacoco插件兼容。根据您提供的信息,您的Maven版本是3.8.8,Java版本是21.0.3+7-LTS-152。这些版本应该与Jacoco 0.8.12兼容。如果问题仍然存在,请尝试更新Maven和Java版本,或者使用不同的Jacoco版本。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月20日

悬赏问题

  • ¥15 前台多人编辑时怎么让每个人保存刷新都互不干扰
  • ¥20 如何用Python删除单元格内连续出现的重复词?
  • ¥15 WangEditor嵌入到geeker-admin中,回车没有办法换行
  • ¥30 stm32f103c8t6制作万能红外遥控器
  • ¥15 有人会fastcrud写前端页面吗
  • ¥15 如何解除Uniaccess管控
  • ¥15 微信小程序跳转关联公众号
  • ¥15 Java AES 算法 加密采用24位向量报错如何处理?
  • ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄
  • ¥45 字符串操作——数组越界问题