测试覆盖率工具:EclEmma
测试覆盖率工具:EclEmma
目录
1 测试覆盖率实现技术
2 EclEmma介绍
3 EclEmma测试覆盖率指标
4 EclEmma安装
5 示例项目介绍
5.1 创建项目
5.2 用Coverage as TestNG Suite跑用例
5.3 跑后结果
5.4 导出HTML报告
5.5 导入导出合并覆盖率Session
5.6 测试引用的jar包的覆盖率
1 测试覆盖率实现技术
返回
- Instrumentation:代码注入,在产品代码的关键位置插入统计代码,从而获得测试覆盖率数据
- Class Instrumentation: 把统计代码插入编译好的.class文件
- Source Instrumentation:把统计代码插入源代码并编译成新的.class文件
- Custom JVM:在JVM中把统计代码插入.class。测试覆盖率分析可以在JVM执行测试代码的过程中完成
2 EclEmma介绍
返回
- 一个优秀的开源软件测试工具
- eclipse的一个插件
- 能够对由 Java 语言编写的程序进行覆盖测试
- 能够在工作平台中启动
- 直接对代码覆盖进行分析
- 覆盖结果将立即被汇总并在Java源代码编辑器中高亮显示
- 也可程序运行的结果生成详尽的覆盖测试报告
- 可以结合JUnit、TestNG使用
- 工作原理:Class Instrumentation
3 EclEmma测试覆盖率指标
返回
- 行覆盖率: 部分行覆盖:a>b?a:b
- 基本语句块覆盖率: 基本语句块:没有if-else分支的代码区域
- 类覆盖率: 由JVM加载并初始化
- 方法覆盖率: 第一个基本语句块被执行
4 EclEmma安装
返回
- 启动eclipse -> 点击Help菜单 -> Install New Software,在弹出的对话框中,点击Add
- 输入Name,例如EclEmma。输入Location:http://update.eclemma.org/
- 安装后重新启动eclipse,如果成功安装,工具栏上会出现一个新的按钮,如图1所示
图1 EclEmma按钮
5 示例项目介绍
返回
下面通过项目介绍如何在使用了TestNG测试框架的项目中的使用EclEmma测试覆盖率
TestNG请参考: TestNG 入门教程
5.1 创建项目
项目中使用TestNG测试框架,包含被测类'Calculator'和测试类'CalculatorTest'。
源代码:TestngAndEclEmmaDemo.zip
图2 测试结构
5.2 用Coverage as TestNG Suite跑用例
图3 Coverage as TestNG Suite
5.3 跑后结果
图5 标注源代码和Coverage视图
5.4 导出HTML报告
- 要导出的session (session:一次测试覆盖率交互活动)
- 选择报告的类型(HTML/XML/Text/EMMA session)
- 存放位置
图7 HTML报告
HTML报告可以逐层展开,点击方法还可以看到代码的覆盖情况。
列名含义:
- missed Instructions代码覆盖率,
- Missed Branches逻辑分支覆盖率,
- Missed Cxty判断执行数,
- missed Lines代码行数,
- Methods方法个数。
5.5 导入导出合并覆盖率Session
既可以导出session,也可以导入session,还可以合并session,这样,可以将多次测试覆盖率的结果进行合并
图8 合并Session
5.6 测试引用的jar包的覆盖率
图9 测试引用的jar包的覆盖率
其他Eclipse覆盖率插件
EclEmma、Clover与Cobertura插件
测试覆盖率工具:EclEmma相关推荐
- 阿里p8推荐,测试覆盖率工具—Jacoco,实用性极佳
测试覆盖率工具 测试过程中根据需求文档和设计文档编写测试用例.执行测试:为了更加全面的覆盖,我们可能还需要理解被测程序的逻辑,需要考虑到每个函数的输入与输出,逻辑分支代码的执行情况,这个时候我们的测试 ...
- 测试覆盖率工具--EMMA
测试覆盖率(Code Coverage) 测试覆盖率,简单的说,就是评价测试活动覆盖产品代码的指标.测试的目的,是确认产品代码按照预期一样工作,也可以看作是产品代码工作方式的说明文档.进一步考虑,测试 ...
- 代码扫描工具测试覆盖率工具
测试覆盖率工具 转载于:https://www.cnblogs.com/vivian-test/p/5398289.html
- iOS 覆盖率检测原理与增量代码测试覆盖率工具实现
背景 对苹果开发者而言,由于平台审核周期较长,客户端代码导致的线上问题影响时间往往比较久.如果在开发.测试阶段能够提前暴露问题,就有助于避免线上事故的发生.代码覆盖率检测正是帮助开发.测试同学提前发现 ...
- ios 单元测试覆盖率怎么查看_iOS 覆盖率检测原理与增量代码测试覆盖率工具实现...
背景 对苹果开发者而言,由于平台审核周期较长,客户端代码导致的线上问题影响时间往往比较久.如果在开发.测试阶段能够提前暴露问题,就有助于避免线上事故的发生.代码覆盖率检测正是帮助开发.测试同学提前发现 ...
- Android 增量代码测试覆盖率工具实践
当业务快速发展,新业务不断出现,开发同学粗心的情况下,难免会出现少测漏测的情况,如何保证新增代码有足够的测试覆盖率?当一段正常的代码,开发却修改了,测试人员没有测试其功能,如果保证能够发现? 所以代码 ...
- Android增量代码测试覆盖率工具
美团业务快速发展,新项目新业务不断出现,在项目开发和测试人员不足.开发同学粗心的情况下,难免会出现少测漏测的情况,如何保证新增代码有足够的测试覆盖率是我们需要思考的问题. 先看一个bug: 以上代码可 ...
- java测试覆盖率工具_【腾讯TMQ】JAVA代码覆盖率工具JaCoCo-原理篇(下)
三.JaCoCo使用方式 使用方式有很多,这里贴出了相应的参考链接,根据项目的不同可以灵活供有需要的读者去学习. 3.1 Apache Ant方式 参见 http://eclemma.org/jaco ...
- 测试覆盖率统计工具_使用测试工具和方法进行测试覆盖率
测试覆盖率统计工具 概述: 要定义"测试覆盖率",我们必须谈论以下主题: 测试覆盖的目的. 不同类型的测试覆盖率标准. 测试覆盖率指标 单元测试范围 测试覆盖率工具 测试覆盖范围的 ...
最新文章
- HTML全局属性data-
- bzoj3224: Tyvj 1728 普通平衡树(打个splay暖暖手)
- [算法]两个栈实现一个队列
- 在Anaconda中实现多版本Python共存
- Android 4.4环境搭建——Android SDK下载与安装
- 搜苹果ipad版_春季课前第3轮评估! 安卓苹果电脑端全平台支持!
- Java 网络编程实例—多线程聊天室
- Ragel——基于有限状态机用于产生源码的编译器
- Python调用有道智云文本翻译API接口实现“智能”伪原创
- 由于应用universal link 校验不通过 ios应用升级SDK 更换Universal Links校验
- 怎么删除win10的系统更新服务器,教你怎么永久删除Win10更新助手(Update Assistant)...
- 安卓开发 投屏安卓设备到电脑端 scrcpy
- 环境保护刻不容缓,智慧治理迎来新生!
- 数据标准化的方法与作用
- get(obj, “a.b[0].c“, 0)
- java中时区的时令问题
- Android 应用安装过程分析
- C语言程序设计第二次作业
- CFA1级 JC网课
- Fiddler 手机抓包
热门文章
- element中表格报错 ResizeObserver loop completed with undelivered notifications.
- 8款超高效率的办公软件,增加工作幸福感,千万别错过
- ✔G【OPA828】放大器模块 超低输入电流偏置 同相/反相放大器 跟随器
- keil5中新建一个STM32工程
- 基于mind+实时模式实现语音对讲功能
- libcurl相关知识
- 世界上面积超过10000平方公里的淡水湖排名
- 【身份证识别】BP神经网络身份证号码识别【含Matlab源码 1344期】
- .net导入Excel 并显示进度条
- 0.5mm的焊锡丝能吃多大电流_工程施工中怎样计算要用多大的电线电缆?