单元测试覆盖工具coverlipse

    xiaoxiao2022-07-15  166

    我的 工作经常会遇到这样的问题,统计自动化覆盖率,以前做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/ 相关资源:敏捷开发V1.0.pptx
    最新回复(0)