Java单元覆盖率工具JaCoCo详细理解和使用(配置+示例)

一、代码覆盖率理解

        代码覆盖(Code coverage)是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率。

        简单来理解,就是单元测试中代码执行量与代码总量之间的比率。

      Java常用的单元测试覆盖率框架有:JaCoCo、EMMA和Cobertura,本篇文章主要介绍JaCoCo的使用。

二、JaCoCo理解

        JaCoCo官方文档:https://www.eclemma.org/jacoco/trunk/doc/index.html

        JaCoCo应该为基于Java VM的环境中的代码覆盖率分析提供标准技术。重点是提供一个轻量级,灵活且文档齐全的库,以与各种构建和开发工具集成。

产品定义

1.功能特征:

  • 指令(C0),分支(C1),行,方法,类型和循环复杂度的覆盖率分析
  • 基于Java字节码,因此无需源文件也可以工作
  • 通过基于 Java-agent 的即时检测进行简单集成。其他集成方案(例如自定义类加载器)也可以通过API来实现
  • 与框架无关的:与基于Java VM的应用程序(如纯Java程序,OSGi框架,Web容器或EJB服务器)平滑集成
  • 与所有已发布的Java类文件版本兼容
  • 支持不同的JVM语言
  • 几种报告格式(HTML,XML,CSV)
  • 远程协议和JMX控制可在任何时间点从coverage agent请求执行数据dump
  • Ant任务,用于收集和管理执行数据并创建结构化的覆盖率报告
  • Maven插件可收集覆盖率信息并在Maven构建中创建报告

非功能特征:

  • 简单的用法以及与现有构建脚本和工具的集成
  • 良好的性能和最小的运行时开销,尤其是对于大型项目
  • 轻量级实现,对外部库和系统资源的依赖性最小
  • 全面的文档
  • 完整记录的API(JavaDoc)以及与其他工具集成的示例
  • 基于JUnit测试用例的功能全面的回归测试

2. JaCoCo集成

        JaCoCo集成主要包括JaCoCo/EclEmma 项目提供的集成和第三方集成

    1)JaCoCo/EclEmma 项目集成  

        

     2) 第三方集成

  • 46
    点赞
  • 226
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值