testng查看覆盖率_测试覆盖率工具:EclEmma

测试覆盖率工具:EclEmma

2016-08-26

目录

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测试覆盖率

5.1 创建项目

项目中使用TestNG测试框架,包含被测类'Calculator'和测试类'CalculatorTest'。

图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)

存放位置

 图6 导出报告 

图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插件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值