文章目录
1.Maven添加Jacoco插件
- 直接上代码
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.8</version>
<executions>
<execution>
<id>default-prepare-agent</id><goals><goal>prepare-agent</goal></goals>
</execution>
<execution>
<id>default-report</id><goals><goal>report</goal></goals>
</execution>
<!--, 以上默认只会生成jacoco.exec, 要生成cvs/html,需要以下配置
<execution>
<id>post-unit-test</id><phase>test</phase>
<goals><goal>report</goal></goals>
<configuration>
<dataFile>target/jacoco.exec</dataFile>
<outputDirectory>target/jacoco-ut</outputDirectory>
</configuration>
</execution>
-->
</executions>
</plugin>
进入项目目录:执行mvn test 命令即可生成jacoco.exec,默认地址当前项目的target目录下
mvn test -Dmaven.test.skip=false
更详细参数参考
2. 命令行执行,不添加插件,易于jenkens等集成
注:但到4.1问题时,还是无法解决
# 生成 jacoco.exec
mvn org.jacoco:jacoco-maven-plugin:0.8.8:prepare-agent clean test -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true
# 如果只生成.exec文件,没有生成文件夹,执行以下命令,依赖于上一步的 jacoco.exec
# 默认目录:target/site/jacoco
mvn org.jacoco:jacoco-maven-plugin:0.8.8:report
3. Maven添加maven-surefire-plugin插件,可区分集成测试或单元测试
用于区分单元测试与集成测试
- 还是直接上代码
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
<includes>
<include>*/*_UT.java</include>
</includes>
<excludes>
<exclude>*/*Test.java</exclude>
</excludes>
<!-- 解决Jacoco错误,错误信息: Skipping JaCoCo execution... -->
<argLine>${argLine} -Xmx2048m</argLine>
</configuration>
</plugin>
4. 常见问题
4.1 问题一:无法生成报告(.exec)
- 报错信息
Skipping JaCoCo execution due to missing executi on data file.
- 解决办法
- 修改pom.xml文件,修改maven-surefire-plugin插件,添加如下:
<argLine>${argLine} -Xmx2048m</argLine>