jacoco-java测试覆盖率工具

jacoco-java测试覆盖率工具

1 为什么要关注测试覆盖率

    覆盖率是程序编程的最后一环,单元测试验证代码,而覆盖率验证测试用例。

   代码覆盖率常常被拿来作为衡量测试好坏的指标

   开发关注覆盖率是为了更加深入的测试代码,不留死角,避免隐藏bug的出现

   在对外说“代码很牛,没有bug”的时候,说服别人需要有数据


2 jacoco是什么

JaCoCo是一个开源的覆盖率工具(官网地址: http://www.eclemma.org/JaCoCo/ ),

它针对的开发语言是java。

实现:使用asm动态修改字节码,在代码中进行打桩,从而进行统计。
模式:插件模式、命令行模式
使用:1 执行测试用例的时候使用jacoco参数,会生成覆盖率分析文件。2 使用jacoco命令根据exec文件生成覆盖率报告。
数据指标:

指令级覆盖(Instructions,C0coverage)

分支(Branches,C1coverage)

圈复杂度(CyclomaticComplexity)

行覆盖(Lines)

方法覆盖(non-abstract methods)

类覆盖(classes)


3  怎样分析测试覆盖率

IDE方式、gradle、jenkins持续集成

IDE方式:IDEA内部实现了测试覆盖率的插件,使用方便


在Run/Debug configuration界面中的Code Coverage tab页中进行配置,在2、3处可以自定义分析类或者包。



使用gradle插件

在目前的项目使用的是gradle构建工具,项目中使用了java、jacoco插件,tasks中有jacoco默认的任务jacocoTestReport。运行该任务的前提是要执行test任务,即要执行测试用例。




jenkins插件方式

先执行测试用例,再执行sonar静态分析,如果静态分析不通过,则本次构建失败;如果sonar通过,则jacoco分析.exec文件,得出覆盖率。







覆盖率文件(执行测试用例之后会生成)

class文件路径

java源文件路径(如果找不到,看不到具体的代码覆盖信息)

分析的java代码路径

排除的java文件

构建的指标(max、min)

构建失败指标

4 检测有意义的代码

检测的代码:

服务实现类

工具类

线程相关类

不用检测的代码:

entity类

数据库操作类

异常定义类

常量类

枚举

VO等

生成的代码


5 如何提升测试覆盖率

多写测试用例

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值