• 使用emma对web工程进行测试覆盖率检查


    因为工作原因,想对写的代码进行一下测试覆盖率的统计,在网上看到不少工具,一开始用的是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
  • 相关阅读:
    Macaca拓展自己控件的方法
    pyparsing:定制自己的解析器
    利用 Traceview 精准定位启动时间测试的异常方法 (工具开源)
    Jenkins插件开发
    一个简陋的高并发请求脚本的演进过程
    python 自定义回调函数
    默认端口
    基本数据类型封装类比较
    grep命令和tail命令
    idea 拉取git新分支
  • 原文地址:https://www.cnblogs.com/huapox/p/3516338.html
Copyright © 2020-2023  润新知