jacoco 是一款开源工具,用来统计代码覆盖率。提供了maven插件、ant Tasks、agent代理等使用方法。
三种使用方法
- ant任务方式不常用,且需要配置环境,所以未考虑这种方法。
- maven插件
参考 https://mp.youkuaiyun.com/postedit/103148884
这种方式主要是在maven 生命周期中统计代码覆盖率,主要用于单元测试。 - jacoco agent
这种方式可以在程序运行时,进行统计代码覆盖率。接口测试、自动化测试等都可使用。目前我的需求是统计某个服务的代码覆盖率,测试是通过接口测试完成,服务与测试代码是分离的,所以主要使用这种方式。
jacoco agent
启动服务时,在虚拟机参数加上jacoco agent 代理,这样在服务中代码被执行时,jacoco可以统计并记录。测试结束后,可以把记录写入exec文件中。通过exec文件就可以查看覆盖率。
1、下载jacoco agent
https://www.eclemma.org/jacoco/

下载解压后文件如下
jacocoagent.jar 用来监听执行代码
jacococli.jar 提供了一些命令行接口,可以用来生成exec文件、html报告等。

2、启动服务并带vm参数
vm参数:
-javaagent:E:\software\jacoco-0.8.5\lib\jacocoagent.jar=classdumpdir=E:\software\jacoco\class,output=tcpserver,address=localhost,includes=com.*
可以用命令行执行java -javaagent:jacocoagent.jar=includes=com.*,classdumpdir=classes,output=tcpserver,port=6300,address=127.0.0.1 -jar jacocoDemo.jar
也可以在开发工具中执行参数中配置

jacocoagent 命令参数参考:https://www.jacoco.org/jacoco/trunk/doc/agent.html
3、执行测试后生成 exec 文件
进入cmd 窗口
执行命令java -jar E:\software\jacoco-0.8.5\lib\jacococli.jar dump --address 192.168.73.60 --port 6300 --destfile E:\software\jacoco\jacoco.exec

在destfile指定路径下生成文件

4、生成HTML报告
进入cmd 窗口
执行命令java -jar E:\software\jacoco-0.8.5\lib\jacococli.jar report E:\software\jacoco\jacoco.exec --classfiles D:\sssss\service\target --sourcefiles D:\sssss\service\src\main\java --html E:\software\jacoco\report
classfiles 编译文件存放目录,maven 项目是target下
sourcefiles 原文件存放目录,maven项目是 src\main\java
生成报告,进入index.html可查看


2779



被折叠的 条评论
为什么被折叠?



