TESTNG&&JUNIT4對(duì)比
特性或指標(biāo) |
TESTNG |
JUINT4 |
1. 測(cè)試是否支持(Annotations) |
YES |
YES |
2.框架依賴程度 |
不需要擴(kuò)展特定的基類和實(shí)現(xiàn)特定的方法 |
不需要擴(kuò)展特定的基類和實(shí)現(xiàn)特定的方法 |
3.靈活性 |
同樣支持Before,After方法,TestNG更為靈活,支持各種簽名方式, 如private,protected 同樣也支持BeforeClass 和AfterClass,只執(zhí)行一次的方法,但是可以不需要使用static簽名 |
支持Before,After方法 支持BeforeClass 和AfterClass |
4.依賴性測(cè)試 |
利用 Test 注釋的 dependsOnMethods 屬性來應(yīng)對(duì)測(cè)試的依賴性問題。有了這個(gè)便利的特性,就可以輕松指定依賴方法。 |
難確定測(cè)試用例執(zhí)行的順序 |
5.失敗和重運(yùn)行 |
一旦 TestNG 中出現(xiàn)失敗,它就會(huì)創(chuàng)建一個(gè) XML 配置文件,對(duì)失敗的測(cè)試加以說明。如果利用這個(gè)文件執(zhí)行 TestNG 運(yùn)行程序,TestNG 就只運(yùn)行失敗的測(cè)試。這樣可以快速定位出錯(cuò)方法,并且節(jié)約大量的時(shí)間。 失敗文件,一般命名為testng-failed.xml,以后只需要運(yùn)行此文件就可以了。 |
如果測(cè)試套件包括 N 項(xiàng)測(cè)試,其中 M(M<=N) 項(xiàng)失敗,很可能就會(huì)迫使您重新運(yùn)行整個(gè)測(cè)試套件(修改錯(cuò)誤以后)。這樣的工作會(huì)耗費(fèi)掉大量的時(shí)間。 |
6.參數(shù)化測(cè)試 |
TestNG 提供了開箱即用的類似特性。通過在 TestNG 的 XML 配置文件中放入?yún)?shù)化數(shù)據(jù),就可以對(duì)不同的數(shù)據(jù)集重用同一個(gè)測(cè)試用例,甚至有可能會(huì)得到不同的結(jié)果。 支持@DataProvider 注釋可以方便地把復(fù)雜參數(shù)類型映射到某個(gè)測(cè)試方法。 |
如果您想改變某個(gè)受測(cè)方法的參數(shù)組,就只能給每個(gè) 不同的參數(shù)組編寫一個(gè)測(cè)試用例。多數(shù)情況下,這不會(huì)帶來太多麻煩。出現(xiàn)大量的重復(fù)測(cè)試代碼。 |
7.測(cè)試分組 |
支持 |
不支持 |
8.多線程測(cè)試 |
TestNG對(duì)多線程測(cè)試的支持良好,只需要配置即可。 |
JUnit中要想進(jìn)行多線程測(cè)試比較麻煩,需要其它模塊。 |
設(shè)計(jì) JUnit 的目的是側(cè)重點(diǎn)分析代碼單元,而 TestNG 的預(yù)期用途則針對(duì)高級(jí)測(cè)試。
------君臨天下,舍我其誰------