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