博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单元测试覆盖工具coverlipse
阅读量:6857 次
发布时间:2019-06-26

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

 我的 经常会遇到这样的问题,统计自动化覆盖率,以前做windows的程序可以用ibm的Codecover来实现这种功能,但是对于 应用服务器端代码覆盖率的统计一直没有找到好的方法,前阵子听说了coerlipse,今天就预研了一下,虽然没有达到我的目的(无法实现对远程服务器端代码覆盖率的统计,只能完成本地做 的覆盖率统计)。但是还是把 过程记录一下,说不定以后有用哦。
  首先,需要到http://coverlipse.sourceforge.net/download.php下载插件,该网站提供两种方式,一种是通过eclipse更新插件地址去更新他的插件,一种是将插件先下载过来手工安装。
  手工安装的方法,自然和其他安装插件方法一样,完成如下三步:
  一,解压插件包,关闭eclipse程序。
  二,将插件包中的plugin目录下的文件拷贝到你eclipse安装目录下的plugin目录下;把features下的xml文件拷贝到你elipse安装路径的features目录下。
  三,启动eclipse,点击help->abaout Eclipse platform属性页,可以通过plugin-detail查看你的插件是否被安装成功了。
  现在我们要做单元测试的简单实验了,当然我们首先要新建一个被测工程,一个被测类,一个测试类。在本例子中分别命名如下
  测试工程:Mytest。由于是单元测试工具通常测试工程和被测工程在同一个工程中。根据我对coverlipse的简单研究,似乎也必须在同一个工程内。
  
被测试类: helloworld
  被测代码如下:
01  package testp;
02
03  public class helloworld {
04     public String SayHelloWorld(String a)
05     {
06         if (a !="")
07         {
08            return a + " helloworld";
09         }
10         else
11         {
12            return "please input username";
13         }
14     }
15  }
  
测试类:testhelloworld
  测试类代码如下:
1   public class testhelloworld extends TestCase {
2      @Test
3      public void testCase1() throws Exception
4      {
5          helloworld hw = new helloworld();
6          String rs = hw.SayHelloWorld("elbert");
7          org.junit.Assert.assertEquals("elbert helloworld", rs);
8      }
9   }
 我们可以通过两种途径来测试覆盖率。一种最简洁的方法,选中junit的测试类,右键点击,选择Run as->w/coverlipse,如下图
  也可以通过在Run dialog上面的设置来设置测试类和被测试类。如下图
  最后我们要查看代码覆盖率了,coverlipse通过两个页签来显示结果
  1.coverlipse marks view:通过这个页签会告诉测试者,被测类中哪些代码行被测试,那些代码行没有被测试。由于例子中的被测类的第12行不会被执行,所以报告结果如下图。
  2.coverlipse class view:通过这个页签可以知道被测类的测试覆盖率。如下图
最新内容请见作者的GitHub页:http://qaseven.github.io/

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

你可能感兴趣的文章
<转载>构造函数与拷贝构造函数
查看>>
[转]K近邻算法
查看>>
表单元素01
查看>>
React Native项目Xcode打包发布iOS问题
查看>>
JPress v1.0-rc2 发布,新增微信小程序 SDK
查看>>
Confluence 6 为搜索引擎隐藏外部链接
查看>>
Python Mysql 数据库操作
查看>>
iOS Autolayout 介绍 2 Interface Builder 技巧
查看>>
打卡加虐狗
查看>>
Springboot + swagger2 通过实体对象封装形式上传视频或者图片问题解决
查看>>
Confluence 5 中如何快速创建一个 JIRA Ticket
查看>>
TP5搭建虚拟主机详细步骤
查看>>
为什么我们做分布式使用Redis?
查看>>
【4opencv】求解向量和轮廓的交点
查看>>
一次邮件发送协议SMTP问题排查
查看>>
BugkuCTF 文件上传测试
查看>>
7- OpenCV+TensorFlow 入门人工智能图像处理-彩色反转&边缘检测
查看>>
不同地域的内容偏好性分析
查看>>
JPA @Column 字段命名 默认驼峰转换
查看>>
作者谈《阿里巴巴Java开发手册(规约)》背后的故事
查看>>