开发者社区> javaedge> 正文

jacoco关于Java代码覆盖率你不得不会的基操!

简介: 0 前言 全是干货的技术殿堂 文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial jacoco是一个开源的覆盖率工具,通过插桩方式来记录代码执行轨迹. ant是构建工具,内置任务和可选任务组成的.Ant运行时需要一个XML文件(构建文件)。
+关注继续查看

云栖号:https://yqh.aliyun.com
第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策!

0 前言

全是干货的技术殿堂

文章收录在我的 GitHub 仓库,欢迎Star/fork:

Java-Interview-Tutorial

https://github.com/Wasabi1234/Java-Interview-Tutorial

jacoco是一个开源的覆盖率工具,通过插桩方式来记录代码执行轨迹.

ant是构建工具,内置任务和可选任务组成的.Ant运行时需要一个XML文件(构建文件)。

1 覆盖率软件对比

2 流程

  1. 配置jacocoagent参数,启动服务
  2. 生成 jacoco.exec
  3. 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:/fs/jacocoagent.jar=includes=*,output=tcpserver,port=8888,address=127.0.0.1

4 生成报告

  • ant dump

生成"jacoco.exec"

  • ant report

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

什么方法级别覆盖率你都还不满足,想看到底哪行代码覆盖到了?
那你得知道这有多坑了,最基本的配置是做不到的,我们还需要配置自己的 class 文件路径和源码路径!

  • 注意要具体到 class 目录和 java 目录!,即 com 目录的上一级目录,就能完美展示源码的覆盖率情况了

  • 绿色的为行覆盖充分
  • 红色的为未覆盖的行
  • 红色菱形的为分支全部未覆盖
  • 黄色菱形的为分支部分覆盖
  • 绿色菱形为分支完全覆盖

6 测试报告过滤

方案分两种

  1. 在jacoco配置中过滤
  2. 在class文件夹中删除掉无用的class文件
    该方案不可逆,如果在统计完某一个moudel的覆盖率,之后在统计其他moudel的时候就无法直接实现;处理规则比较麻烦,与现有框架不好结合

下面介绍第一种方案主要修改build文件的配置:
主要在exclude这个标签里面过滤,如果大块排除,也可以在指定classfilepath的时候过滤。

总结

基操到此结束!入门完毕,开始愉快的高级玩耍与自行适配优化吧~

云栖号在线课堂,每天都有产品技术专家分享
立即加入圈子:https://c.tb.cn/F3.Z8gvnK
与专家面对面,及时了解课程最新动态!

原文发布时间:2020-03-17
本文作者:javaedge
本文来自:“阿里云云栖社区”,了解相关信息可以关注“阿里云云栖社区

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
java插桩-Jacoco java代码覆盖率可视化
java插桩-Jacoco java代码覆盖率可视化
251 0
Java代码覆盖率框架JaCoCo的core-instr core.internal.instr 包类源码解析(下)
Java代码覆盖率框架JaCoCo的core-instr core.internal.instr 包类源码解析(下)
255 0
Java代码覆盖率框架JaCoCo的core-instr core.internal.instr 包类源码解析(上)
Java代码覆盖率框架JaCoCo的core-instr core.internal.instr 包类源码解析(上)
184 0
Java代码覆盖率利器JaCoCo基本概念详解
Java代码覆盖率利器JaCoCo基本概念详解
491 0
jacoco关于Java代码覆盖率你不得不会的基操!
jacoco关于Java代码覆盖率你不得不会的基操!
178 0
Java代码覆盖率历史发展轨迹
Java代码覆盖率历史发展轨迹
121 0
Java开发工具IntelliJ IDEA单元测试和代码覆盖率图解
原文 http://www.cnblogs.com/xiongmaopanda/p/3314660.html Java开发工具IntelliJ IDEA使用教程:单元测试和代码覆盖率 本文将展示如何使用IntelliJ IDEA开发单元测试和分析覆盖率。
2486 0
Java实现单词计数MapReduce
本文分享实现单词计数MapReduce的方法
137 0
JAVA 实现上传图片添加水印(详细版)(上)
JAVA 实现上传图片添加水印(详细版)
293 0
+关注
javaedge
关注公众号:JavaEdge,后台回复面试,领取更多大厂求职资源。曾在百度、携程、华为等大厂搬砖,专注Java生态各种中间件原理、框架源码、微服务、中台等架构设计及落地实战,只生产硬核干货!
文章
问答
视频
文章排行榜
最热
最新
相关课程
更多
相关电子书
更多
JAVA开发手册1.5.0
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多