springboot代码覆盖-JACOCO --亲测可以


1、下载 jacoco

官网:https://www.jacoco.org/jacoco/index.html

 

2、拷贝 jar 包  (解压即可)

 

3、启动 jacocoagent,监控被测项目


java -javaagent:jacocoagent.jar=includes=*,output=tcpserver,port=6300,address=localhost,append=true -jar demo-0.0.1.jar
#demo-0.0.1.jar为被测项目jar包

 

4、cli 包 dump 生成 exec 文件(注意一定要测试完毕之后)

java -jar cli-0.8.7.jar dump --address 127.0.0.1 --port 6300 --destfile jacoco-demo.exec
# --address 127.0.0.1 --port 6300 指向jacocoagent启动IP和端口
# jacoco-demo.exec 为生成exec文件名

 

5、cli 包 exec 生成 report 报表

java -jar cli-0.8.7.jar report jacoco-demo.exec --classfiles D:\code\devops\SBD\target\classes --sourcefiles D:\code\devops\SBD\src\main\java --html html-report --xml report.xml --encoding=utf-8
#--sourcefiles 和 --classfiles 为本地被测项目源码和字节码路径

 

6、覆盖率报告

点开 report 文件下 index.html

jacoco 覆盖率,Cov 表示覆盖率

表格列依次是:元素;未覆盖字节码行数;未覆盖的分支数;圈复杂度;行;方法;类;

 

覆盖率标识:

条件覆盖:红钻:表示未覆盖;黄钻:表示部分覆盖;绿钻:表示全部覆盖;

行覆盖:全覆盖(绿色),未覆盖(红色),半覆盖(黄色),无视(白色)

 

 

测试代码覆盖率  Jacoco

https://blog.csdn.net/weixin_42517093/article/details/106339718

https://mp.weixin.qq.com/s/KRIzu7lnmPZrgHrRywYa-w

 

自己实践

启动监控项目命令时出现    zsh: no matches found

解决方法: https://blog.csdn.net/Cool_001/article/details/112719537

 

这篇我亲测试可以的

总结:

java -javaagent:jacocoagent.jar=includes=*,output=tcpserver,port=6300,address=localhost,append=true -jar B_End_Test_Project-0.0.1-SNAPSHOT.jar


java -jar jacococli.jar dump --address 127.0.0.1 --port 6300 --destfile jacoco-demo.exec
# --address 127.0.0.1 --port 6300 指向jacocoagent启动IP和端口
# jacoco-demo.exec 为生成exec文件名


java -jar jacococli.jar report jacoco-demo.exec --classfiles /Users/lucax/Desktop/工作/小工具脚本/B端测试平台/b_end_java_test_project/target/classes --sourcefiles /Users/lucax/Desktop/工作/小工具脚本/B端测试平台/b_end_java_test_project/src/main/java --html html-report --xml report.xml --encoding=utf-8

#--classfiles 和字节码路径  注意要指定到 。。。/target/classes 这个目录
#--sourcefiles 为本地被测项目源码 注意要指定到 。。。。/src/main/java 这个目录

 

 

开发的时候可以不打包,在IDE 把启动参数加上 ,其余的2个命令也是那么敲

-javaagent:jacocoagent.jar=includes=*,output=tcpserver,port=6300,address=localhost,append=true

 

 

每次跑完功能,就执行命令,更新 exec文件,更新报告,即后面的2条命令


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM