大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 教育教学 -> 编程工具 -> 覆盖率测试工具cobertura 2.1.1
覆盖率测试工具cobertura 2.1.1

覆盖率测试工具cobertura 2.1.1

免费软件
  • 软件大小:4.16MB
  • 软件语言:简体中文
  • 更新时间: 2021-12-21
  • 软件类型:国产软件
  • 运行环境:win系统
  • 软件等级 :
大雀下载地址
banner1
  • 介绍说明
  • 下载地址
  • 相关推荐
cobertura是一个给予就coverage的开源免费java工具,用于计算测试访问的代码的百分比,他可以用于识别用户的java程序的哪些部分缺乏测试覆盖,是非常强大的工具。
你可以通过cobertura检测基本代码,并观察测试包运行时执行了那些代码和没有执行哪些代码,通过这些代码用户就可以进行测量测试覆盖率了。除了找出未测试到的代码和发现BUG以外,我们的这可U安工具还可以通过标记无用的、执行不到的代码来为用户提供优化代码的服务,还能够通过API接口来进行操作java应用程序内部的信息。如果你需要一款覆盖率测试工具,这款cobertura是相当不错的选择。
覆盖率测试工具cobertura 2.1.1(图1)

cobertura软件特色

只在特定平台上执行的代码。例如,在一个设计良好的 GUI 应用程序中,添加一个 Exit 菜单项的代码可以在 Windows PC 上运行,但它不能在 Mac 机上运行。
捕获不会发生的异常的 catch 语句,比如在从 ByteArrayInputStream 进行读取操作时抛出的 IOException。
非公共类中的一些方法,它们永远也不会被实际调用,只是为了满足某个接口契约而必须实现。
处理虚拟机 bug 的代码块,比如说,不能识别 UTF-8 编码。

cobertura软件功能

确认遗漏的测试
利用 Cobertura 报告,可以找出代码中未测试的部分并针对它们编写测试。例如,图 3 显示 Jaxen 需要进行一些测试,运用 name() 函数对文字节点、注释节点、处理指令节点、属性节点和名称空间节点进行测试。
(几乎)不留下任何未测试的代码
是否有一些可以测试但不应测试的内容?这取决于您问的是谁。在 JUnit FAQ 中,J. B. Rainsberger 写到“一般的看法是:如果 自身 不会出问题,那么它会因为太简单而不会出问题。第一个例子是 getX() 方法。假定 getX() 方法只提供某一实例变量的值。在这种情况下,除非编译器或者解释器出了问题,否则 getX() 是不会出问题的。因此,不用测试 getX(),测试它不会带来任何好处。对于 setX() 方法来说也是如此,不过,如果 setX() 方法确实要进行任何参数验证,或者说确实有副作用,那么还是有必要对其进行测试。”
阅读 Cobertura 输出
我们首先查看生成的 Cobertura 输出。图 1 显示了对 Jaxen 测试包运行 Cobertura 生成的报告。从该报告中,可以看到从很好(在 org.jaxen.expr.iter 包中几乎是 100%)到极差(在 org.jaxen.dom.html 中完全没有覆盖)的覆盖率结果。
图 1. Jaxen 的包级别覆盖率统计数据
覆盖率测试工具cobertura 2.1.1(图2)
Cobertura 通过被测试的行数和被测试的分支数来计算覆盖率。第一次测试时,两种测试方法之间的差别并不是很重要。Cobertura 还为类计算平均 McCabe 复杂度。
可以深入挖掘 HTML 报告,了解特定包或者类的覆盖率。图 2 显示了 org.jaxen.function 包的覆盖率统计。在这个包中,覆盖率的范围从 SumFunction 类的 100% 到 IdFunction 类的仅为 5%。
图 2. org.jaxen.function 包中的代码覆盖率
覆盖率测试工具cobertura 2.1.1(图3)
进一步深入到单独的类中,具体查看哪一行代码没有测试到。图 3 显示了 NameFunction 类中的部分覆盖率。最左边一栏显示行号。后一栏显示了执行测试时这一行被执行的次数。可以看出,第 112 行被执行了 100 次,第 114 行被执行了 28 次。用红色突出显示的那些行则根本没有测试到。这个报告表明,虽然从总体上说该方法被测试到了,但实际上还有许多分支没有测试到。
图 3. NameFunction 类中的代码覆盖率
覆盖率测试工具cobertura 2.1.1(图4)

命令行方式使用cobertura

比较喜欢用command line方式,因为这样省去了用ant task方式写xml的麻烦。前几次在执行了cobertura-instrument.bat之后,根据网上说的把cobertura.jar和cobertura.ser拷到tomcat的bin目录下,启动tomcat就会报错,见下图:
覆盖率测试工具cobertura 2.1.1(图5)
后来在同事的帮助下,网上也查了一下,说要把jar包放在lib目录下,于是把cobertura.jar拷到tomcat\common\lib目录下,见下图:
覆盖率测试工具cobertura 2.1.1(图6)
再次启动tomcat,成功~
覆盖率测试工具cobertura 2.1.1(图7)
对于用command line方式来使用cobertura,现总结如下:
1.拷贝cobertura.jar到tomcat\common\lib目录下;
2.对于需要统计覆盖率的class文件进行instrument,命令行格式如下:
cobertura-instrument.bat [--basedir dir] [--datafile file] [--destination dir] [--ignore regex] classes [...]
[]内的参数可省略,我destination等参数都没用,直接对要进行instrument的class操作,我的命令行如下:
覆盖率测试工具cobertura 2.1.1(图8)
3.instrument成功后会在cobertura的目录下生成cobertura.ser文件,将此文件拷到tomcat\bin目录下,见下图:
覆盖率测试工具cobertura 2.1.1(图9)
4.启动tomcat。在命令提示符窗口,转到tomcat\bin目录,键入startup.bat并回车;
5.启动成功后,tomcat\bin目录下的cobertura.ser的文件时间会更新;
6.和平常一样测试,测试结束后,关闭tomcat。在命令提示符窗口键入shutdown.bat并回车,然后Ctrl+C来关闭tomcat窗口,这样cobertura.ser才会更新,见下图:
覆盖率测试工具cobertura 2.1.1(图10)
一般每次测试并关闭tomcat后,cobertura.ser都是在原来的基础上更新,所以一般不用merge命令:)
7.生成report,命令行格式如下:
cobertura-report.bat [--datafile file] [--destination dir] [--format (html|xml)] [--encoding encoding] source code directory [...] [--basedir dir file underneath basedir ...]
默认是html格式,会生成好多html文件,见下图:
覆盖率测试工具cobertura 2.1.1(图11)
上图中没有指明source code directory,在查看report时,会显示没有和源代码关联,因此需指定源代码所在的目录,如下图:
覆盖率测试工具cobertura 2.1.1(图12)
8.打开index.html文件,查看覆盖率,如下图:
覆盖率测试工具cobertura 2.1.1(图13)
下载地址
  • PC版
  • 电信高速下载
  • 联通高速下载
  • 广东电信下载
  • 山东电信下载

默认解压密码:www.daque.cn
如需解压,请在本站下载飞压软件进行解压!

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.

<

Rights Reserved.

<