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 的預期用途則針對高級測試。



------君臨天下,舍我其誰------