下面我們用EclEmma運(yùn)行我們上面Junit的例子,看看測(cè)試覆蓋率是多少,點(diǎn)擊這個(gè)新的按鈕,運(yùn)行Junit Test。
可以看到EclEmma用不同的色彩標(biāo)示了源代碼的測(cè)試情況。其中,綠色的行表示該行代碼被完整的執(zhí)行,紅色部分表示該行代碼根本沒(méi)有被執(zhí)行,而黃色的行表明該行代碼部分被執(zhí)行?梢(jiàn)我們的測(cè)試用例對(duì)邏輯類(lèi)LogicClass的測(cè)試達(dá)到了。
有時(shí)候想一次運(yùn)行中覆蓋所有的代碼通常比較困難,如果能把多次測(cè)試的覆蓋數(shù)據(jù)綜合起來(lái)進(jìn)行察看,那么我們能更方便地掌握多次測(cè)試的測(cè)試效果。EclEmma提供了這樣的功能。通過(guò)Coverage視圖的工具按鈕來(lái)結(jié)合多次覆蓋測(cè)試的結(jié)果。在彈出框中點(diǎn)擊OK按鈕,可以看到多次測(cè)試對(duì)代碼的測(cè)試覆蓋率了。
4. 如何使用Ant批量運(yùn)行junit單元測(cè)試用例并生成測(cè)試報(bào)告
我們編寫(xiě)完單元測(cè)試用例以后,我們可以運(yùn)行單元測(cè)試用例來(lái)檢查我們的代碼有沒(méi)有bug,以后如果代碼發(fā)生改變,我們可以運(yùn)行單元測(cè)試用例來(lái)檢查我們的修改有沒(méi)有帶進(jìn)新的bug。但如果每個(gè)測(cè)試用例都要手工運(yùn)行那比較繁瑣了,下面我們介紹如何使用ant進(jìn)行批量測(cè)試和生成測(cè)試報(bào)告。
4.1 什么是ant:
Ant是一個(gè)類(lèi)似make的、用java實(shí)現(xiàn)的構(gòu)建工具,項(xiàng)目的構(gòu)建、包裝和發(fā)布過(guò)程中幾乎每一件事都可以由Ant的任務(wù)來(lái)處理。Ant憑借出色的易用性、平臺(tái)無(wú)關(guān)性以及對(duì)項(xiàng)目自動(dòng)測(cè)試和自動(dòng)部署的支持,已成為眾多項(xiàng)目構(gòu)建過(guò)程中不可或缺的獨(dú)立工具,并已經(jīng)成為事實(shí)上的標(biāo)準(zhǔn)。
4.2 如何使用ant批量運(yùn)行junit測(cè)試用例并生成測(cè)試報(bào)告:
隨著項(xiàng)目的進(jìn)展和項(xiàng)目的規(guī)模在不斷的膨脹,為了保證項(xiàng)目的質(zhì)量,有計(jì)劃的執(zhí)行全面的單元測(cè)試是非常有必要的。利用Ant集成Junit可以通過(guò)配置批量運(yùn)行所指定的測(cè)試用例并生成測(cè)試報(bào)告,可以讓開(kāi)發(fā)人員及時(shí)發(fā)現(xiàn)代碼中所隱藏的bug,及時(shí)進(jìn)行修改,極大的提高工作效率,從某種意義上做到持續(xù)集成。
Ant 內(nèi)置了對(duì) JUnit 的支持,它提供了兩個(gè) Task:junit 和 junitreport,分別用于執(zhí)行JUnit單元測(cè)試和生成測(cè)試結(jié)果報(bào)告。使用這兩個(gè) Task編寫(xiě)構(gòu)建腳本,可以很簡(jiǎn)單的完成批量運(yùn)行單元測(cè)試并生成測(cè)試報(bào)告的任務(wù)。
首先把junit的包加載到ant的編譯目錄下:打開(kāi) Eclipse 的window菜單,選擇reference選項(xiàng)界面,選擇Ant-> Runtime 選項(xiàng),將 Junit 4.* 的 JAR 文件添加到 Classpath Tab 頁(yè)中的GlobalEntries 設(shè)置項(xiàng)里。還有記得檢查一下 Ant Home Entries 設(shè)置項(xiàng)中的 Ant 版本是否在1.7.0之上,如果不是請(qǐng)?zhí)鎿Q為新版本的 AntJAR文件,Eclipse3.2內(nèi)置的ant版本是1.65,eclipse3.4內(nèi)置的ant版本是1.70,所以如果我們使用的junit版本是4以上的,好用eclipse3.4。
接下來(lái)是編寫(xiě) Ant 構(gòu)建腳本 build.xml。雖然這個(gè)過(guò)程稍嫌繁瑣,但這是一件一勞永逸的事情。
把此build.xml文件放到工程的根目錄下,修改test屬性的值為我們要運(yùn)行的單元測(cè)試用例的包路徑名,如果為空默認(rèn)運(yùn)行工程所有的單元測(cè)試,在Eclipse下打開(kāi)此build.xml文件,在右邊的outline視圖下右擊ant的junit任務(wù),選擇RunAsAntBuild,可以運(yùn)行此ant文件的junit任務(wù),然后我們可以在Eclipse的控制臺(tái)上看到Ant任務(wù)的執(zhí)行信息,任務(wù)執(zhí)行完后,會(huì)在工程的report目錄下的“framework-${DSTAMP}-${TSTAMP}”臨時(shí)文件夾下生成html類(lèi)型的測(cè)試報(bào)告。