单元测试覆盖率-使用Clover

单元测试覆盖率-使用Clover

前段时间做的一个升级包到线上后出了个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_第1张图片

 

还需要导入clover.license。从Preferences->Clover->License进入:

单元测试覆盖率-使用Clover_第2张图片

使用load,导入clover.license。到这里,Clover已经安装完成,开始进入我们的单元测试。

 

我新建了一个project,结构如下:

单元测试覆盖率-使用Clover_第3张图片

 

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选项的相关信息:

单元测试覆盖率-使用Clover_第4张图片

点击红框内的按钮,会弹出重新构建工程的提示,点击"是"即可。

 

在Coverage Explorer界面下,我们会看到:



 

 

右击SampleTest.java,选择Run as->JUnit Test,结果如下:



 

可以看到Sample.java的覆盖率为71.4%.

 

Clover还可以生成三种测试报告:PDF/HTML/XML。按钮可以在Coverage Explorer那排的选项按钮里找到(run new report)。html的测试报告见附件。

 

到这里,已经算是能在Eclipse中使用Clover的基本功能了,以后慢慢探索,欢迎大家扔砖~

 

你可能感兴趣的:(单元测试覆盖率-使用Clover)