网站首页 > java教程 正文
推荐一款java测试覆盖率工具
测试覆盖率实现技术
Instrumentation:代码注入,在产品代码的关键位置插入统计代码,从而获得测试覆盖率数据。
Class Instrumentation: 把统计代码插入编译好的.class文件。
Source Instrumentation:把统计代码插入源代码并编译成新的.class文件。
Custom JVM:在JVM中把统计代码插入.class。测试覆盖率分析可以在JVM执行测试代码的过程中完成。
EclEmma介绍
一个优秀的开源软件测试工具,eclipse的一个插件。
能够对由 Java 语言编写的程序进行覆盖测试。
能够在工作平台中启动。
直接对代码覆盖进行分析。
覆盖结果将立即被汇总并在Java源代码编辑器中高亮显示。
也可程序运行的结果生成详尽的覆盖测试报告,
可以结合JUnit、TestNG使用。
工作原理:Class Instrumentation。
EclEmma测试覆盖率指标
行覆盖率:部分行覆盖:a>b?a:b。
基本语句块覆盖率:基本语句块:没有if-else分支的代码区域。
类覆盖率:由JVM加载并初始化。
方法覆盖率:第一个基本语句块被执行。
EclEmma安装
方式一:下载安装(推荐):
地址: http://sourceforge.net/projects/eclemma/
eclemma
将解压后的features和plugins目录下的文件分别拷贝到Eclipse下的features和plugins目录。注意:不要将features plugins目录外的文件拷贝到Eclipse目录下,只拷贝features和plugins目录下的文件。
方式二:在线安装
地址:http://update.eclemma.org
方式三:最新版本Eclipse中已集成Coverage插件:Version: Oxygen Release (4.7.0)
eclipse
完成方式一或方式二,重启Eclipse。
工具栏会出现coverage图标。
coverage icon
执行java代码,用eclemma按钮执行。
eclemma button
查看运行结果
result
生成覆盖率报告
要导出的session (session:一次测试覆盖率交互活动)
选择报告的类型(HTML/XML/Text/EMMA session)
存放位置
右击项目名称->选择Export(导出)->选择Java的Coverage Report
export
新本的Eclipse导出报告,选择run/debug
export
export
保存后打开HTML结果
resutl
HTML报告可以逐层展开,点击方法还可以看到代码的覆盖情况。
列名含义:
missed Instructions代码覆盖率,
Missed Branches逻辑分支覆盖率,
Missed Cxty判断执行数,
missed Lines代码行数,
Methods方法个数。
导入导出合并覆盖率Session
既可以导出session,也可以导入session,还可以合并session,这样,可以将多次测试覆盖率的结果进行合并
merge
测试引用的jar包的覆盖率
test 引用jar包
其他Eclipse覆盖率插件
EclEmma、Clover与Cobertura插件。
thanks
猜你喜欢
- 2024-10-29 Thymeleaf+LayUI使用百度富文本编辑器(Ueditor)
- 2024-10-29 eclipse插件属性编辑器的离线安装
- 2024-10-29 基于Java的XML编辑器Oxygen XML Editor
- 2024-10-29 Markdown(编辑器)工具与使用总结(markdown编辑器用法)
- 2024-10-29 Java项目本地部署宝塔搭建实战报修小程序springboot版系统源码
- 2024-10-29 五大最佳代码编辑器,让你的开发效率翻倍
- 2024-10-29 CHM Editor——WYSIWYG编辑器(chm编辑器哪种好)
- 2024-10-29 Android平台上最好的几款免费的代码编辑器
- 2024-10-29 高级程序员最爱用的8款代码编辑器,你用哪几个?
- 2024-10-29 8个免费且优秀的代码编辑器,让开发速度飞起来
你 发表评论:
欢迎- 07-15采用Oracle OSB总线进行服务注册和接入
- 07-15javaEE 新闻管理系统 oracle11+tomcat6
- 07-15从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 07-15如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 07-15【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 07-15【mykit-data】 数据库同步工具(数据库表同步工具)
- 07-15[Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- 07-15Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- 最近发表
-
- 采用Oracle OSB总线进行服务注册和接入
- javaEE 新闻管理系统 oracle11+tomcat6
- 从Oracle演进看数据库技术的发展(oracle数据库发展史)
- 如何升级oracle数据库安全补丁(oraclepsu补丁升级)
- 【权威发布】关于Oracle WebLogic Server未授权远程代码执行高危漏洞的预警通报
- 【mykit-data】 数据库同步工具(数据库表同步工具)
- [Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)
- Google前工程主管“入住”Oracle(google浏览器找不到以前的书签)
- Oracle数据库云服务系列新增前所未有的企业级功能
- 直播预告丨如何实现Oracle存储过程到java的一键转化
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)