jenkins中jacoco单元测试覆盖率的配置踩坑

本文介绍了如何在Maven项目中添加Jacoco插件以收集单元测试覆盖率数据,并在Jenkins中配置SonarQube以生成覆盖率报告。关键点在于确保测试类路径正确,特别是src/test/java路径的使用,以及配置jacoco.exec文件的位置。
摘要由CSDN通过智能技术生成

首先在项目的主pom中加以下依赖

        <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.7</version>
                <executions>
                    <execution>
                        <id>jacoco-initialize</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <!--这个report:对代码进行检测,然后生成index.html在target/jacoco-ut/index.html中可以查看检测的详细结果-->
                    <execution>
                        <id>jacoco-site</id>
                        <phase>test</phase>
                        <!--<phase>package</phase>写上test的时候会自动出现jacoco-ut文件夹,而不需执行下面的jacoco:report步骤,推荐-->
                        <goals>
                            <goal>report</goal>
                        </goals>
                        <configuration>
                            <dataFile>target/jacoco.exec</dataFile>
                            <outputDirectory>target/jacoco-ut</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.21.0</version>
                <configuration>
                    <useSystemClassLoader>false</useSystemClassLoader>
                    <forkMode>once</forkMode>
                    <reuseForks>true</reuseForks>
                    <testFailureIgnore>true</testFailureIgnore>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
                <version>3.8.0.2131</version>
            </plugin>

然后在jenkins中配置
在这里插入图片描述

在这里插入图片描述

# project key 就是上面得到的,不能错
sonar.projectKey=test-b
sonar.projectName=test-b
sonar.projectVersion=1.0
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.sources=$WORKSPACE
sonar.java.binaries=$WORKSPACE
#测试类的字节码文件路径,不支持通配符
sonar.java.test.binaries=target/test-classes
sonar.junit.reportsPath=target/surefire-reports
# 代码覆盖率插件

sonar.java.coveragePlugin=jacoco
# jacoco插件版本
jacoco.version=0.8.7
# jacoco.exec文件路径
# 项目的jacoco.exec文件路径
sonar.jacoco.reportPath=$WORKSPACE/**/target/jacoco.exec
sonar.coverage.jacoco.xmlReportPaths=$WORKSPACE/**/target/jacoco-ut/jacoco.xml





有个大坑就是,试了很长时间构建一个项目,单元测试覆盖率报告就是出不来,jacoco文件也没生成,原因是项目路径有问题,执行单元测试覆盖路的前提是必须有test路径也就是个src下面的和main同级,否则会跳过
在这里插入图片描述

jacoco覆盖率只识别src/test/java路径下的单元测试,不成功的单元测试也会跳过的
在这里插入图片描述
这样就会生成jacoco单元测试覆盖率

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值