您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > junit
全面認(rèn)識(shí)JUnit 4的特征
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/4 15:58:25 ] 推薦標(biāo)簽:

  十一、 工具集成功能

  當(dāng)我寫本文時(shí),JUnit 4在IDE方面的集成還不是很理想。事實(shí)上,如果你試圖運(yùn)行我們剛才看到的那個(gè)測(cè)試類的話,它們無(wú)法工作在任何IDE環(huán)境中,因?yàn)樗鼈儾荒鼙蛔R(shí)別為測(cè)試類。為了向前兼容性起見,JUnit 4發(fā)行中帶有一個(gè)適配器(junit.framework.JUnit 4TestAdapter),你必須把它使用于一個(gè)suite()方法中。下面是你必須添加到每個(gè)類中的代碼;這樣以來(lái),它們才能為各種IDE,Ant以及JUnit 3.8中的文本運(yùn)行機(jī)所識(shí)別:

public static junit.framework.Test suite() {
 return new JUnit 4TestAdapter(CalculatorTest.class);
}

  (一) Intellij IDEA

  IDEA 5并沒有集成JUnit 4。沒有辦法,我們只好等待IDEA 6中實(shí)現(xiàn)這一集成了。在這個(gè)例子中,我使用了較早的發(fā)行版本(Demetra build 5321);但是,參數(shù)化測(cè)試用例仍不能工作。圖1展示了這個(gè)CalculatorTest的執(zhí)行情況(被忽略的測(cè)試以一個(gè)不同的圖標(biāo)標(biāo)志)。

圖1.IDEADemetra僅能運(yùn)行CalculatorTest。

圖2.Eclipse 3.2RC7能夠運(yùn)行測(cè)試集類AllCalculatorTests。

  (二) Eclipse

  我現(xiàn)在使用的是Eclipse的3.2 RC7版本。雖然它還不是一個(gè)穩(wěn)定發(fā)行版本,但是其與JUnit 4的集成優(yōu)于IDEA。上圖2展示了在運(yùn)行AllCalculatorTests類時(shí)你能看到的結(jié)果。

  如你所見,該參數(shù)化測(cè)試用例(SquareTest)被描述為7個(gè)單獨(dú)的測(cè)試。

  (三) Ant集成

  junit任務(wù)當(dāng)前僅僅支持JUnit 3.8風(fēng)格測(cè)試;這也是說(shuō),你還必須用一個(gè)JUnit 4 TestAdapter來(lái)包裝你的JUnit 4測(cè)試;這樣,它們才能在Ant中運(yùn)行。這個(gè)<junit>任務(wù)與其在JUnit 3.8中用法一樣:

<!-- Test -->
<target name="test" depends="compile">
<junit fork="yes" haltonfailure="yes">
<test name=" JUnit 4.AllCalculatorTests"/>
<formatter type="plain" usefile="false"/>
<classpath refid="classpath"/>
</junit>
</target>

  十二、 結(jié)論

  有很長(zhǎng)一段時(shí)間,JUnit簡(jiǎn)直成了事實(shí)上的單元測(cè)試框架標(biāo)準(zhǔn)。但是,近來(lái),這個(gè)框架似乎無(wú)大"動(dòng)靜":沒有重要的發(fā)行版本,沒有引人注目的新特征出現(xiàn)。這可能是為什么其它測(cè)試框架,例如Test-NG開始逐漸占居測(cè)試框架市場(chǎng)統(tǒng)治地位的原因。

  隨著這個(gè)新版本的發(fā)行,JUnit又出現(xiàn)了新的轉(zhuǎn)機(jī)。如今,它提供了許多新的API,而且現(xiàn)在還使用注解,所以使開發(fā)測(cè)試用例更為容易。事實(shí)上,該JUnit開發(fā)者已經(jīng)開始考慮新的未來(lái)的注解問題。例如,你可以在一個(gè)依賴于前提(舉例來(lái)說(shuō),你需要在線地執(zhí)行這個(gè)測(cè)試)的測(cè)試用例上添加一個(gè)@Prerequisite注解;或者添加一個(gè)能夠指定重復(fù)次數(shù)及時(shí)限(舉例來(lái)說(shuō),重復(fù)測(cè)試5次以確保真正出現(xiàn)了一個(gè)時(shí)限問題)的@Repeat注解;或者甚至在@Ignore注解上添加一個(gè)平臺(tái)參數(shù)(舉例來(lái)說(shuō),@Ignore(platform=macos),這將只有你在一個(gè)MacOS平臺(tái)上運(yùn)行時(shí)才忽略一個(gè)測(cè)試)。從本文中你能看到,JUnit的未來(lái)依然燦爛輝煌。

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