专栏首页JavaEdgejacoco关于Java代码覆盖率你不得不会的基操!
原创

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

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 目录的上一级目录,就能完美展示源码的覆盖率情况了
  • 绿色的为行覆盖充分
  • 红色的为未覆盖的行
  • 红色菱形的为分支全部未覆盖
  • 黄色菱形的为分支部分覆盖
  • 绿色菱形为分支完全覆盖

总结

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

    下载了最新的JUnit版本,是4.13,结果尝试使用发现总是报java.lang.NoClassDefFoundError: org/hamcrest/Self...

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

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

    JavaEdge
  • SpringBoot+Security 发送短信验证码在core模块下properties包中创建SmsCodeProperties在ValidateCodeProperties中new一个SmsCo

    JavaEdge
  • IDEA启动远程调试

    2.远程jar开启调试模式(就是在平时的java -jar后面接上上面复制出来的一句话): java -jar -agentlib:jdwp=transpor...

    似水的流年
  • Maven常见使用问题及解决方法

    本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    十毛
  • DB2导入数据库

    首先使用db2用户登录到需要导库的服务器,通常用户名和密码为db2inst1/db2inst1

    说故事的五公子
  • 自己部署 PHP 版本的 Wafer2 Demo

    自行部署适用于想将腾讯云 Wafer SDK 和 Demo 部署在自己的服务器上以获得更高的灵活性和操纵权限的用户。部署过程需要从零开始搭建线上环境,需要有一定...

    Jason
  • 再探Numpy中的axis(也是torch中的dim)

    Aidol
  • 如何在CDH中安装和使用StreamSets

    StreamSets由Informatica前首席产品官Girish Pancha和Cloudera前开发团队负责人Arvind Prabhakar于2014年...

    Fayson
  • 如何将本地仓库的代码上传到github远程仓库

    1.首先在本地建立一个目录,然后进入该目录,如我在我的D盘建立一个Code文件夹,将自己想要上传的代码放在该文件夹里

    故久

扫码关注云+社区

领取腾讯云代金券