jacoco关于Java代码覆盖率你不得不会的基操!
【摘要】 0 前言
全是干货的技术殿堂
文章收录在我的 GitHub 仓库,欢迎Star/fork:
Java-Interview-Tutorial
https://github.com/Wasabi1234/Java-Interview-Tutorial
jacoco是一个开源的覆盖率工具,通过插桩方式来记录代码执行轨迹.
ant是构建工具,内置任务和...
0 前言
全是干货的技术殿堂
文章收录在我的 GitHub 仓库,欢迎Star/fork:https://github.com/Wasabi1234/Java-Interview-Tutorial
jacoco是一个开源的覆盖率工具,通过插桩方式来记录代码执行轨迹.
ant是构建工具,内置任务和可选任务组成的.Ant运行时需要一个XML文件(构建文件)。
1 覆盖率软件对比

2 流程
- 配置jacocoagent参数,启动服务
- 生成 jacoco.exec
- ant 构建生成覆盖率报告
3 启动jcocoagent
javaagent:javaagent是JDK 1.5以后引入的,也可以叫做Java代理.
后面跟的参数是jcocoagent的jar包地址.
- includes:包含在执行分析中的类名列表,*表示全部
- output:表示使用tcpserver代理侦听由address和port属性指定的TCP端口,并将执行的数据写入此TCP连接,从而实现不停止项目运行实时生成代码覆盖率报告
- port:开启的端口号
address: 开启的ip地址,本地写127.0.0.1
jar:运行服务的jar包地址
java - javaagent:jacocoagent.jar [=options]应用
4 生成报告
- ant dump

生成"jacoco.exec"

- ant report

5 打开"index.html"报告,展示类的覆盖率文件

什么方法级别覆盖率你都还不满足,想看到底哪行代码覆盖到了?
那你得知道这有多坑了,最基本的配置是做不到的,我们还需要配置自己的 class 文件路径和源码路径!
- 注意要具体到 class 目录和 java 目录!,即 com 目录的上一级目录,就能完美展示源码的覆盖率情况了


- 绿色的为行覆盖充分
- 红色的为未覆盖的行
- 红色菱形的为分支全部未覆盖
- 黄色菱形的为分支部分覆盖
- 绿色菱形为分支完全覆盖
6 测试报告过滤
方案分两种
- 在jacoco配置中过滤
- 在class文件夹中删除掉无用的class文件
该方案不可逆,如果在统计完某一个moudel的覆盖率,之后在统计其他moudel的时候就无法直接实现;处理规则比较麻烦,与现有框架不好结合
下面介绍第一种方案主要修改build文件的配置:
主要在exclude这个标签里面过滤,如果大块排除,也可以在指定classfilepath的时候过滤。

总结
基操到此结束!入门完毕,开始愉快的高级玩耍与自行适配优化吧~
文章来源: javaedge.blog.csdn.net,作者:JavaEdge.,版权归原作者所有,如需转载,请联系作者。
原文链接:javaedge.blog.csdn.net/article/details/104915621
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者




评论(0)