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

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

0 前言

全是干货的技术殿堂

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

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

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

1 覆盖率软件对比

2.png

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:jacocoagent.jar [=options]应用

4 生成报告

  • ant dump

image.png

生成"jacoco.exec"

4.png

ant report

5.png

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

6.png

什么方法级别覆盖率你都还不满足,想看到底哪行代码覆盖到了?

那你得知道这有多坑了,最基本的配置是做不到的,我们还需要配置自己的 class 文件路径和源码路径!

  • 注意要具体到 class 目录和 java 目录!,即 com 目录的上一级目录,就能完美展示源码的覆盖率情况了
  • 7.png
  • 8.png
  • 绿色的为行覆盖充分
  • 红色的为未覆盖的行
  • 红色菱形的为分支全部未覆盖
  • 黄色菱形的为分支部分覆盖
  • 绿色菱形为分支完全覆盖

6 测试报告过滤

方案分两种

  1. 在jacoco配置中过滤
  2. 在class文件夹中删除掉无用的class文件

该方案不可逆,如果在统计完某一个moudel的覆盖率,之后在统计其他moudel的时候就无法直接实现;处理规则比较麻烦,与现有框架不好结合

下面介绍第一种方案主要修改build文件的配置:

主要在exclude这个标签里面过滤,如果大块排除,也可以在指定classfilepath的时候过滤。

9.png

总结

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


目录
相关文章
|
XML 网络协议 数据可视化
java插桩-Jacoco java代码覆盖率可视化
java插桩-Jacoco java代码覆盖率可视化
1182 0
java插桩-Jacoco java代码覆盖率可视化
|
存储 Java
Java代码覆盖率框架JaCoCo的core-instr core.internal.instr 包类源码解析(下)
Java代码覆盖率框架JaCoCo的core-instr core.internal.instr 包类源码解析(下)
1113 0
Java代码覆盖率框架JaCoCo的core-instr core.internal.instr 包类源码解析(下)
|
Java API
Java代码覆盖率框架JaCoCo的core-instr core.internal.instr 包类源码解析(上)
Java代码覆盖率框架JaCoCo的core-instr core.internal.instr 包类源码解析(上)
397 0
Java代码覆盖率框架JaCoCo的core-instr core.internal.instr 包类源码解析(上)
|
IDE Java 测试技术
Java代码覆盖率利器JaCoCo基本概念详解
Java代码覆盖率利器JaCoCo基本概念详解
1319 0
Java代码覆盖率利器JaCoCo基本概念详解
|
Java jenkins 测试技术
Java代码覆盖率历史发展轨迹
本文介绍Java代码覆盖率工具EMMA与JaCoCo,对比二者优劣,详解JaCoCo原理、集成方式及使用场景,助力提升测试质量。
535 0
|
XML 网络协议 Java
jacoco关于Java代码覆盖率你不得不会的基操!
0 前言 全是干货的技术殿堂 文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial jacoco是一个开源的覆盖率工具,通过插桩方式来记录代码执行轨迹. ant是构建工具,内置任务和可选任务组成的.Ant运行时需要一个XML文件(构建文件)。
1815 0
|
6月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
321 1
|
6月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
321 3
下一篇
开通oss服务