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条命令