SpringBoot多module 新建一个module集成jacoco覆盖率
时间: 2024-11-04 20:15:26 浏览: 28
压缩文件夹,多module 集成jacoco统计率
Spring Boot多模块项目(Multi-module project)是指将一个大型项目拆分为多个独立的模块,每个模块都有自己的业务逻辑和依赖。如果你想在一个新的模块中集成JaCoCo用于代码覆盖率报告,可以按照以下步骤操作:
1. **添加 JaCoCo 依赖**:
- 在你的新module的pom.xml文件中添加JaCoCo的依赖。例如,如果你使用Maven,添加如下行到`<dependencies>`标签内:
```xml
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
<scope>test</scope>
</dependency>
```
- 如果是Gradle项目,可以在`build.gradle`文件的`testImplementation`或`testRuntimeOnly`部分添加JaCoCo库。
2. **配置 JaCoCo 插件**:
- 对于Maven,你还需要在`<build>`标签中添加JaCoCo插件配置,如:
```xml
<build>
...
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
...
</build>
```
3. **启用测试并收集覆盖率数据**:
- 在你的单元测试类上添加`@RunWith(JUnitPlatform.class)`注解,并使用`@TestExecutionListeners`来激活JaCoCo:
```java
@RunWith(JUnitPlatform.class)
@TestExecutionListeners(listeners = JacocoListener.class, mergeMode = MergeMode.EXHAUSTIVE)
public class MyTest {
...
}
```
- 创建一个监听器类`JacocoListener.java`来启动JaCoCo监听:
4. **运行测试**:
- 确保在运行测试时,整个项目被构建,包括新加入的模块。你可以通过maven的`verify`命令或gradle的`test`任务来完成这一步。
5. **查看覆盖率报告**:
- Maven:执行`mvn site`会自动生成JaCoCo的HTML覆盖率报告。
- Gradle:可以使用`./gradlew jacocoTestReport`生成报告,然后访问`build/reports/jacoco/html/index.html`查看。
阅读全文