博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用emma对web工程进行测试覆盖率检查
阅读量:7094 次
发布时间:2019-06-28

本文共 1619 字,大约阅读时间需要 5 分钟。

因为工作原因,想对写的代码进行一下测试覆盖率的统计,在网上看到不少工具,一开始用的是Cobertura,觉得它的报告比较直观,但是后来发现要用到大量的ant脚本,嘿嘿,因为本人对ant不熟,觉得这个入手太慢了,就换成了emma。
   我的探索
  一开始发现有个东东叫做EclEmma,是emma的eclipse插件,顿时感觉前途一片光明,下班以前就可以解决问题。结果用eclipse自带的工具安装以后,发现可能是EclEmma版本太高的原因,coverage视图不能显示。郁闷,只好下了一个低版本了,现在的搭配是myeclipse6.6(自带eclipse3.3.2)+ EclEmma1.5.3。
  装上插件之后,测试junit的时候还遇到一个问题,就是使用junit测试时能够正常运行,使用EclEmma运行junit时报告缺少类文件,上网一通搜,发现是缺少oraclepki.jar包,网上也没找到下载地址,最后发现在Oracle的安装目录下就有,目录为oracle\product\11.2.0\dbhome_1\jlib。感觉挺奇怪,因为在正常编译工程时是不需要这个jar包的。
  EclEmma只能用于测试junit程序或是单机版的。找了半天也木有找到怎么统计web工程发布后人工测试的覆盖率。其实使用junit完全可以满足我们项目对关键算法的验证,但是一个是我太懒啦,用例要求的输入项又太多,所以只好继续寻找。
  最后还是回到了Emma上。emma的命令行命令虽然不多,但也够用了。一开始下载的release版本2.0.5312,结果没有 ctl 命令,最后还是换到2.1.5320版本,下载地址http://sourceforge.net/projects/emma/files/emma-testing/
   操作过程
1、将下载zip包中的emma.jar文件复制到使用到的jre目录下的ext文件夹下。
2、使用命令:
[plain] view plaincopyprint?
java emma instr -m overwrite -ip [classes目录]  
java emma instr -m overwrite -ip [classes目录]得到coverage.em文件 
3、使用tomcat启动web工程,测试
4、不要关闭tomcat,使用命令:
[plain] view plaincopyprint?
java emma ctl -connect localhost:47653 -command coverage.get,D:\test\coverage.ec  
java emma ctl -connect localhost:47653 -command coverage.get,D:\test\coverage.ec得到coverage.ec文件 
5、使用coverage.em、coverage.ec两个文件获取报告。使用命令
[plain] view plaincopyprint?
java emma report -r html -sp . -in coverage.em,coverage.ec  
java emma report -r html -sp . -in coverage.em,coverage.ec
 
得到覆盖率报告。
使用emma时遇到几个问题
1、没法直接操作war包,如果对war包进行instr,提示说处理了0个文件,所以只好把war包解压以后再处理
2、在windows下tomcat不能自动得到coverage.ec文件,需要使用命令手动获取。
 开发环境:
操作系统:window7 64bit 
tomat:apache-tomcat-7.0.25 64bit
jdk:1.6.30
myeclipse:6.6
EclEmma:1.5.3
Emma:2.1.5320

转载地址:http://rjnql.baihongyu.com/

你可能感兴趣的文章
设计模式----抽象工厂模式
查看>>
struts1实现上传
查看>>
Android4.4新的特性,在应用内开启透明状态栏和透明虚拟按钮。
查看>>
cmd(小黑框)的操作
查看>>
下拉列表引用数据库数据 JS编写随机生成二维码
查看>>
webp 解码性能对比
查看>>
PHP和MySQL实现消息队列
查看>>
iOS9.0适配
查看>>
点击除了元素以外的元素隐藏元素
查看>>
查看兼容性情况的网站
查看>>
iOS开发技巧(系列十七:使用Xcode DEBUG模式和RELEASE模式)
查看>>
九大排序之c语言版
查看>>
adb shell 命令详解
查看>>
CSS控制文字只显示一行,超出部分显示省略号
查看>>
TCP网络传递文件
查看>>
客户管理-EasyUI
查看>>
Uploadify Version 3.2的使用
查看>>
CentOS 6 x64 chromium 安装
查看>>
如何快速删除hive表中的字段
查看>>
使用GnuPG加密和签名
查看>>