SpringBoot 接入 JaCoCo 实践:代码覆盖率统计
概述
JaCoCo 是面向 Java 的开源代码覆盖率工具,以 Java 代理模式运行,负责在测试运行时检测字节码。JaCoCo 深入分析每个指令,显示测试过程中执行的行。为了收集覆盖率数据,JaCoCo 使用 ASM 即时进行代码检测,并从 JVM Tool Interface 接收事件,最终生成代码覆盖率报告。
接入
SpringBoot 可以通过两种主要方式接入 JaCoCo:Maven 和 Agent。Maven 方式是静态接入,在编译时计算代码覆盖率;Agent 方式是动态接入,服务启动后能实时根据代码命中情况计算覆盖率。
Maven 方式
在 pom.xml 中添加依赖:
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
</dependency>
添加构建配置:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${project.parent.version}</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin
0.8.7
default-prepare-agent
prepare-agent
default-report
report


