JaCoCo代码覆盖率搭建手册

JaCoCo下载安装

官网:https://www.jacoco.org/jacoco/
我选的下载版本是:jacoco-0.8.9

image.png

解压后主要用到两个jar包:jacocoagent.jar、jacocoacli.jar
下载springboot示例代码到本地

git平台:git clone https://github.com/zhangjy91/jacoco_demo.git
项目目录如下:

image.png

在项目根目录下执行mvn clean package命令对项目进行打包生成jar文件
image.png
启动JaCoCo agent进行插桩
java -javaagent:/Users/zhangjiangying/Downloads/jacoco-0.8.9/lib/jacocoagent.jar=includes=*,output=tcpserver,port=6300,address=localhost,append=true -jar demo-0.0.1-SNAPSHOT.jar

说明:
demo-0.0.1-SNAPSHOT.jar:就是刚才执行命令生成的jar包

打开浏览器,访问http://127.0.0.1:8080/hello,也就意味着覆盖了项目中的say()方法
image.png
通过cli的dump生成exec文件
java -jar /Users/zhangjiangying/Downloads/jacoco-0.8.9/lib/jacococli.jar dump --address localhost --port 6300 --destfile ./jacoco_tcp_01.exec
通过cli的exec生成report文件
java -jar /Users/zhangjiangying/Downloads/jacoco-0.8.9/lib/jacococli.jar report /Users/zhangjiangying/Downloads/jacoco-0.8.9/lib/jacoco_tcp_01.exec --classfiles /Users/zhangjiangying/Downloads/jacoco-0.8.9/lib/jacoco_demo/target/classes --sourcefiles /Users/zhangjiangying/Downloads/jacoco-0.8.9/lib/jacoco_demo/src/main/java --html report01
查看代码覆盖率

打开目录report01下的index.html,代码覆盖率是86%


image.png
image.png

再继续点击代码路径,发现say()方法已被访问,byebye()方法未访问


image.png
继续在浏览器上访问http://127.0.0.1:8080/byebye,以达到覆盖byebye()方法的目的
image.png
再次通过cli的dump生成exec文件
java -jar /Users/zhangjiangying/Downloads/jacoco-0.8.9/lib/jacococli.jar dump --address localhost --port 6300 --destfile ./jacoco_tcp_02.exec
通过cli的exec生成report文件
java -jar /Users/zhangjiangying/Downloads/jacoco-0.8.9/lib/jacococli.jar report /Users/zhangjiangying/Downloads/jacoco-0.8.9/lib/jacoco_tcp_02.exec --classfiles /Users/zhangjiangying/Downloads/jacoco-0.8.9/lib/jacoco_demo/target/classes --sourcefiles /Users/zhangjiangying/Downloads/jacoco-0.8.9/lib/jacoco_demo/src/main/java --html report02
查看代码覆盖率

打开目录report02下的index.html,代码覆盖率是100%


image.png

两个方法均被覆盖


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容