私は TestNG の作成者であり、"Next Generation Testing" の本の著者でもあります。
機能 (またはエンド ツー エンド / 統合 / システムなど、お好みの用語) のテストのために、TestNG は、JUnit にはなく、ユーザーが非常に便利だと感じたいくつかの機能を提供します。
1) TestNG に、定義したスレッド プールですべてのテストを同時に実行するように指示できます (XML ファイルの 1 行の変更)。これは、マルチスレッド化されていないテストをシングル スレッドで実行できるように、非常に柔軟に設定できます。
2) TestNG に p スレッドから n 回テスト メソッドを呼び出すように指示できます。これにより、テストしているコードがどの程度スレッド セーフであるかがよくわかります。
- 依存関係と決定論的な順序付けをテストします。これは、実行前に成功するために事前のテスト メソッドを必要とするテスト メソッドがよく見られる統合テストに非常に役立ちます。TestNG は、この特定の理由で Selenium コミュニティで非常に人気があります (「ログイン テストが失敗した場合は、Web サイトのこのページをテストしないでください」)。
テスト依存関係のもう 1 つの直接的な利点は、TestNG が「1 つのメソッドが失敗し、99 個のメソッドがスキップされました」と通知できることです。これは、「100 個のメソッドが失敗しました」よりもはるかに正確な結果です。
TestNG にはさらに多くの機能があり、ここまたはメーリング リスト ( http://groups.google.com/group/testng-users ) で質問にお答えします。