springboot 多模块单元测试 Jacoco
时间: 2023-10-01 10:03:21 浏览: 57
可以使用 Maven 或 Gradle 进行多模块单元测试和 Jacoco 代码覆盖率统计。
对于 Maven,可以在项目的父 POM 文件中添加插件配置:
```xml
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
<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>
```
这个配置会在编译和测试时启动 Jacoco 代理,同时在测试后生成 Jacoco 报告。
对于 Gradle,可以在项目的 build.gradle 文件中添加插件和任务:
```groovy
plugins {
id 'jacoco'
}
jacoco {
toolVersion = "0.8.7"
}
test {
jacoco {
append = false
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
classDumpDir = file("$buildDir/classes/java/test")
}
}
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
html.destination file("${buildDir}/jacocoHtml")
}
}
```
这个配置会在测试时启动 Jacoco 代理,同时在测试后生成 Jacoco 报告。
无论是 Maven 还是 Gradle,如果项目是多模块的,需要在父 POM 或根 build.gradle 文件中指定子模块的测试目录:
```xml
<modules>
<module>module1</module>
<module>module2</module>
<module>module3</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
<modules>
<module>module1</module>
<module>module2</module>
<module>module3</module>
</modules>
subprojects {
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.8.7"
}
test {
jacoco {
append = false
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
classDumpDir = file("$buildDir/classes/java/test")
}
}
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
html.destination file("${buildDir}/jacocoHtml")
}
}
}
```
这个配置会在每个子模块的测试目录中启动 Jacoco 代理,同时在测试后生成 Jacoco 报告。