0%

java单元测试jacoco插件

java springboot 项目,配置单元测试,并要求到达一定的代码覆盖率。

在 maven pom.xml 文件中,需要注意以下几点。

跳过测试阶段改为false。

1
2
3
<properties>
<maven.test.skip>false</maven.test.skip>
</properties>

build 阶段,skip 要改为 false。

如果只要单元测试指定类,就在 include 标签里面指定。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<configuration>
<skip>false</skip>
<includes>
<include>**/XXXTest</include> <!-- 替换为您的测试类路径 -->
</includes>
</configuration>
</plugin>
</plugins>
</build>

配置单元测试依赖,mockito-core 如果配置成4版本会有其他问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!-- 代码覆盖率 -->
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.12.4</version>
<scope>test</scope>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.12</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- jacoco -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

配置结束后,点击 Lifecycle 下面的 test,通过html文件 \target\site\jacoco\index.html 就可以看到覆盖率的页面了