jacoco相关知识

1.jacoco
使用ASM修改字节码
ASM:
通用的java字节码操作和分析框架, 用于修改现有类或直接以二进制形式动态生成类, 
ASM提供了一些常见的字节码转换和分析算法, 可以从中构建自定义复杂转换和代码分析工具。
覆盖率统计:
jacoco包含了多种尺度的覆盖率计数器,
包含指令级(Instructions),分支(Branchs),圈复杂度(Complexity),行(lines),方法,类
(1)行覆盖:
** 全部未覆盖:该行中指令均未执行,红色标志
** 部分覆盖:该行中部分指令执行,黄色标志
** 全覆盖:该行中所有指令已执行,绿色标志

(2)类覆盖:

当类中至少有一个方法已执行,则该类被认为已执行。Jacoco中认为构造函数和静态初始化方法也当作被执行过的方法。Java接口类型若包含静态初始化方法,这种接口也被认为是可执行的类。

(3)方法覆盖:

每个非抽象方法至少包含一个指令。当至少一个指令被执行,该方法被认为已执行。由于Jacoco基于字节码级别的,构造函数和静态初始化方法也被当作方法计算。其中有些方法,可能无法直接对应到源码中,比如默认构造器或常量的初始化命令。
 
(4) 分支覆盖
Jacoco为if和switch语句计算分支覆盖率。这个指标计算一个方法中的分支总数,并决定已执行和未执行的分支的数量。分支覆盖率在class文件中缺少debug信息时也可使用。异常处理不在分支覆盖的统计范围内。
** 全部未覆盖:所有分支均未执行,红色标志
** 部分覆盖:只有部分分支被执行,黄色标志
** 全覆盖:所有分支均已执行,绿色标志
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值