前段时间做的一个升级包到线上后出了个bug,原因是因为做测试的时候没有完全覆盖到。痛定思痛,决定使用Clover来提高代码的单元测试覆盖率。
开发的IDE是使用的Eclipse3.4,这里主要说一下在Eclipse中如何使用Clover,也是刚使用不久,写在这里和大家探讨一下。
使用从http://www.cenqua.com/download.jspa下载Clover,还需要申请一个license,否则无法使用。我下载了30天试用版。
下载后把Clover压缩包里有两个文件夹,features和plugins。我试着用links的方式安装Clover,不幸的失败了,不知道是不是我哪里配错了,只要直接把两个文件夹解压到ECLIPSE_HOME覆盖。
打开Eclipse,从Window->Show view->other,可以看到Clover的信息:
还需要导入clover.license。从Preferences->Clover->License进入:
使用load,导入clover.license。到这里,Clover已经安装完成,开始进入我们的单元测试。
我新建了一个project,结构如下:
Sample.java和SampleTest.java内容分别是:
package com.lyoe.sample; public class Sample { public Integer add(Integer a, Integer b) { if (a == null || b == null) { return null; } Integer sum = new Integer(a.intValue() + b.intValue()); return sum; } }
package com.lyoe.sample; import com.lyoe.sample.Sample; import junit.framework.TestCase; public class SampleTest extends TestCase { protected void setUp() throws Exception { super.setUp(); } public void testAdd() { Sample sample = new Sample(); Integer a = new Integer(1); Integer b = new Integer(2); Integer c = sample.add(a, b); assertNotNull(c); } protected void tearDown() throws Exception { super.tearDown(); } }
右击JunitInAction工程,选择Properties->Clover。上面有一个Enable Clover in this project,勾上,apply->OK.
从Window->Show view->other进入,找到Coverage Explorer,打开,看到Clover选项的相关信息:
点击红框内的按钮,会弹出重新构建工程的提示,点击"是"即可。
在Coverage Explorer界面下,我们会看到:
右击SampleTest.java,选择Run as->JUnit Test,结果如下:
可以看到Sample.java的覆盖率为71.4%.
Clover还可以生成三种测试报告:PDF/HTML/XML。按钮可以在Coverage Explorer那排的选项按钮里找到(run new report)。html的测试报告见附件。
到这里,已经算是能在Eclipse中使用Clover的基本功能了,以后慢慢探索,欢迎大家扔砖~