一、Jacoco基本概念:
Jacoco是开源的java代码单元测试覆盖率统计工具,具体概念请自行百度。
二、springboot集成
在pom.xml的中增加
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.4</version>
</dependency>
在中增加
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.4</version>
<configuration>
<!--指定生成 .exec 文件的存放位置-->
<destFile>target/coverage-reports/jacoco-unit.exec</destFile>
<!--Jacoco 是根据 .exec 文件生成最终的报告,所以需指定 .exec 的存放路径-->
<dataFile>target/coverage-reports/jacoco-unit.exec</dataFile>
</configuration>
<executions>
<execution>
<id>jacoco-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-site</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
三、编写单元测试
@RunWith(SpringRunner.class)
@SpringBootTest()
class AccountControllerTest {
@Autowired
private AccountController accountController;
@Test
@Transactional
void doLogin() {
########测试代码
}
}
四、执行mvn test
五、在target中查看自己单元测试的覆盖率
六、注意
1.覆盖率解读请自行百度
2.如果没有写单元测试,不会生成结果
3.有些项目,在执行mvn build或者mvn package时,会屏蔽单元测试,所以会添加如下配置
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<skipTests>true</skipTests><!--添加 -->
</properties>
需要将skipTests设置为false才可以走单元测试哦。如果设置为true的话,要么不会生成覆盖率,要么覆盖率为0