Java应用程序的测试覆盖率之设计与实现(四)-- jacoco-maven-plugin
一、什么是jacoco-maven-plugin
- jacoco源码
- jacoco文档
除了使用jacoco.cli.jar导出并生成覆盖率报告外,还可以使用jacoco-maven-plugin,它是maven集成了jacoco的一款插件。
在工程pom.xml里配置插件jacoco-maven-plugin。
<plugin><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artifactId><version>0.8.3</version><configuration><!--javaagent所在机器地址--><address>172.27.3.242</address><!--javaagent所在机器,tcpserver的端口号--><port>7195</port><destFile>${project.build.directory}/jacoco.exec</destFile><reset>false</reset><append>true</append><sourceEncoding>utf-8</sourceEncoding><excludes><exclude>com/jacoco/JacocoTestApplication.class</exclude></excludes></configuration><executions><execution><id>dump</id><goals><goal>dump</goal></goals></execution><execution><id>report</id><phase>test</phase><goals><goal>report</goal></goals><configuration><dataFile>${project.build.directory}/jacoco.exec</dataFile><outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory></configuration></execution></executions>
</plugin>
二、mvn jacoco:dump
等价于 java -jar doc/jacococli.jar dump --address 172.27.3.242 --port 7195 --destfile target/jacoco.exec
在工程target目录下将生成一个.exec文件。
三、mvn jacoco:report
等价于 java -jar doc/jacococli.jar report jacoco.exec --classfiles target/classes --sourcefiles src/main/java --html target
不出意外,将在target目录下生成测试覆盖率的html报告。
可当执行命令mvn jacoco:report的时候,意外还是发生了。
1、需要提前编译好工程
mvn package -DskipTests
会一并把测试覆盖率的报告生成,这里把它手动删除,只为验证后面的命令。
2、再次生成报告
mvn jacoco:report, target目录下生成一个site目录
附录
Java应用程序的测试覆盖率之设计与实现(一)-- 总体设计
Java应用程序的测试覆盖率之设计与实现(二)-- jacoco agent
Java应用程序的测试覆盖率之设计与实现(三)-- jacoco cli 客户端
Java应用程序的测试覆盖率之设计与实现(四)-- jacoco-maven-plugin
Java应用程序的测试覆盖率之设计与实现(五)-- jacoco ant task
Java应用程序的测试覆盖率之设计与实现(六)-- 单元测试覆盖率
Java应用程序的测试覆盖率之设计与实现(七)-- 增量代码的测试覆盖率
Java应用程序的测试覆盖率之设计与实现(八)-- jenkins集成