- PHPUnit (PHP向け) (リンク)
- NUnit (.NET向け) (リンク)
- PyUnit (Python向け) (リンク)
- FlexUnit (Flex向け) (リンク)
- ASUnit (ActionScript向け) (リンク)
- Test::Unit (Ruby向け) (リンク)
何年にも及ぶ開発努力と数え切れないほどの世界中のプロジェクトでの採用にも関わらず、一部の人は(リンク) JUnitの運命は終焉に近づいていると感じている。ある人(もしくはグループ)が長い期間存在したソフトウェア・プロジェクトの存を疑い始めたとき、彼らはWebページに対するビューの統計情報を根拠にするようである。まさに今週Mike氏(リンク) がサーチ・エンジンの検索結果を元にしたJUnitに対する"関心"の低下傾向についてブログに記述した。自身はJUnitの終焉を信じてはないと結論付ける一方で、JUnitがピークを越したかもしれないことを示す傾向がいくつか現れているようである。はより新しく、より優れたソフトウェアが登場すればするほど、より多くの開発者の間でそれら(新しいソフトウェア)が流行するということに一つの要因があるかもしれない。ユニット・テストは確かに重要なことであり、広く受け入れられている。しかし、ビヘイビア駆動開発やモック・オブジェクト、それに新たな機能を備えたユニット・テストのフレームワークがスポットライトを浴びているのである。
よくJUnitと比較されるフレームワークがTestNG(リンク)である。これはJUnitに発想を得たテスト・フレームワークである。Michael Minella氏(リンク)がJUnitとTestNGの比較について簡単だがとても有意義な結果を公開している。
機能 | JUnit | TestNG |
ユーザ定義によるライフ・サイクル | ||
テストの組織化(グループ化など) | ||
分散環境でのテスト実行 | ||
並行なテスト実行 | ||
データ駆動テスト | ||
依存関係のあるテストの実行 | ||
IDEとの統合 | ||
Antとの統合 | ||
Mavenとの統合 | ||
特定ドメインに対する拡張(データベース、HTTPなど) | ||
活発なコミュニティ |
氏の考えをまとめると、JUnitはTestNGよりも多く採用され拡張されているものの、TestNGの方が多くの機能を提供し、JUnit用のテスト(スクリプト)を実行することも可能なので、テスト・フレームワークとしてTestNGを選択する方が魅力的な選択に思えるようである。
結論を述べれば、JUnitはもはや数年前ほどのスポットライトを浴びていないものの、「明るい光」の下へと確実に歩んでいるようである。あなたはどう思うだろう、JUnitにはどんな未来が用意されているのだろうか?