TestNG
TestNG(テスティング)は、JUnitとNUnitに触発されたJavaのためのテスティングフレームワークである。TestNGはTesting, the Next Generationの略である。
TestNGは以下のような、使用をよりパワフルで容易にするいくつかの新機能を導入している。
Java SE5のアノテーション(JDK 1.4 ではJavaDocによってアノテーション同等の機能をサポート。しかし、JUnit4でもアノテーションをサポートした)
柔軟なテスト設定。
データ駆動型テストをサポート(@DataProvider)。
テストメソッドにアノテーションで指定した値を代入できる引数をサポート。
スレーブマシンでテストの分散を可能に。
パワフルな実行モデル(これ以上のTestSuiteが無い)。
豊富なツールとプラグインによるサポート(Eclipse, IDEA, Mavenなど)。
さらなる柔軟性を兼ねたBeansShell拡張。
実行とロギングはJDKの機能がデフォルト(JDK以外の環境には非依存)。
アプリケーションサーバテストのための依存メソッド。
TestNGはすべてのテストカテゴリをカバーするよう設計されている: ユニットテスト、機能テスト、エンドトゥーエンドテスト、結合テスト、統合テストその他。
現状では、JUnit4よりも非常に優位な点がいくつか存在する。JUnitは単体テストを重視しているのに対して、TestNGは高レベルなテストや統合テストもできるようになっている。