您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > junit
用clover為java代碼的junit測(cè)試做覆蓋率分析
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/12/20 15:26:57 ] 推薦標(biāo)簽:

本人近在研究java單元測(cè)試技術(shù),有點(diǎn)心得,這里分享給測(cè)試同行朋友!那么,我們研究的主題是使用cenqua公司的clover框架來(lái)分析java程序的單元測(cè)試覆蓋率!關(guān)于clover的更多信息呢,請(qǐng)大家去http://www.cenqua.com/clover去查詢。我們這里,將會(huì)通過(guò)一個(gè)實(shí)例來(lái)演示如何使用junit和clover一起,來(lái)分析java代碼的覆蓋率。我們將會(huì)使用ant來(lái)編譯一個(gè)junit單元測(cè)試實(shí)例項(xiàng)目,然后修改build.xml文件,加上clover的覆蓋率分析任務(wù)target;而且我們還要通過(guò)三部分來(lái)學(xué)習(xí)clover超級(jí)的地方:current報(bào)告、歷史報(bào)告以及高級(jí)特征!

那么開始呢,我們要做的是從http://www.cenqua.com/clover下載clover程序包c(diǎn)lover.jar(它是clover的主要包)、clover.license(clover的試用license,需要到官方網(wǎng)站下載一個(gè)月的試用注冊(cè)文件,否則不能使用clover。、velocity.jar(用來(lái)創(chuàng)建html報(bào)告的擴(kuò)展包),將它們拷貝到ant(ant你已經(jīng)安裝好了,并且設(shè)置了junit.jar以及ANT_HOME之類的初始化工作;我們這里不講ant的基本使用,它都流行這么多年了,這里假設(shè)你都懂啦。┑膌ib目錄下,這樣下來(lái),我們?cè)赼nt的build.xml文件里才可以使用clover任務(wù)!

當(dāng)然,現(xiàn)在很多朋友不喜歡配置一些環(huán)境變量,想把這些jar文件放在任意的地方,例如直接放在項(xiàng)目文件里,那么可以通過(guò)在build.xml文件里指定這些擴(kuò)展包的位置也是可以的;如果在build文件里加入擴(kuò)展包的路徑,需要在build文件里這樣寫:

1) 我們把下載來(lái)的clover.jar和cenquatasks.jar拷貝到你的項(xiàng)目目錄的lib路徑下

2) 在build.xml下添加如下代碼:

<taskdef resource="com/cenqua/ant/antlib.xml" classpath="lib/cenquatasks.jar"/> 

<extendclasspath path="lib/clover.jar"/> 

<taskdef resource="clovertasks" classpath="lib/clover.jar"/> 

之后你可以在ant任務(wù)里構(gòu)建clover的任務(wù)啦!

其實(shí)簡(jiǎn)單的辦法呢,是把clover.jar、clover.license、velocity.jar、cenquatasks.jar、junit.jar這些包都拷貝到ant的lib目錄里,省得麻煩,不然將來(lái)你加入什么新功能,會(huì)提示你找不到相應(yīng)的包,你還得去網(wǎng)上搜,特不爽!

我們的學(xué)習(xí)過(guò)程是:

1) 先使用junit創(chuàng)建完java代碼的測(cè)試代碼,之后編譯運(yùn)行,完成junit對(duì)java代碼的單元測(cè)試;

2) 之后,我們?cè)赼nt里構(gòu)建測(cè)試任務(wù),自動(dòng)完成企業(yè)集的單元測(cè)試工作

3) 然后,我們修改build文件,加入clover任務(wù),來(lái)完整對(duì)單元測(cè)試過(guò)程的覆蓋率分析工作

4) 之后開始重構(gòu)代碼,提高代碼的單元測(cè)試覆蓋率

一、 構(gòu)建java源代碼與junit單元測(cè)試代碼

先在你的電腦里的某個(gè)比較順眼的盤下建立一個(gè)目錄,例如叫sincky,這個(gè)是我們的學(xué)習(xí)項(xiàng)目目錄,再在sincky里創(chuàng)建一個(gè)src文件夾,用來(lái)放置所有的代碼;之后在src里新建一個(gè)java類的源文件,名字叫做IMoney.java,代碼內(nèi)容如下:

public interface IMoney {

/**

* Adds a money to this money.

*/

public abstract IMoney add(IMoney m);

/**

* Adds a simple Money to this money. This is a helper method for

* implementing double dispatch

*/

public abstract IMoney addMoney(Money m);

/**

* Adds a MoneyBag to this money. This is a helper method for

* implementing double dispatch

*/

public abstract IMoney addMoneyBag(MoneyBag s);

/**

* Tests whether this money is zero

*/

public abstract boolean isZero();

/**

* Multiplies a money by the given factor.

*/

public abstract IMoney multiply(int factor);

/**

* Negates this money.

*/

public abstract IMoney negate();

/**

* Subtracts a money from this money.

*/

public abstract IMoney subtract(IMoney m);

/**

* Append this to a MoneyBag m.

*/

public abstract void appendTo(MoneyBag m);

}

這里我們定義一個(gè)java接口,表示了“金錢”這個(gè)神奇東西的一些美妙的抽象方法!早年有首遲志強(qiáng)的歌叫《鈔票》:是誰(shuí)制造的鈔票,你在世上逞霸道,有人為你愁眉苦臉啊有人為你哈哈笑;姑娘為你走錯(cuò)了路,小伙子為你受改造!東奔又西跑,點(diǎn)頭又哈腰,鈔票!人人為你離不了錢哪!你這殺人不見血的刀…形象無(wú)比,不扯了,跑題啦!I am back!

上一頁(yè)123下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd