TestSuiteの作り方

とりあえず簡単な方法で実装。

import org.junit.runner.JUnitCore;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)                                    // 1
@SuiteClasses( { TestA.class, TestB.class, TestC.class })// 2
public class AllTests {
	public static void main(String[] args) {
		JUnitCore.main(AllTests.class.getName());// 3
	}
}
  1. @RunWithでRunnerを指定。
  2. @SuiteClassesで指定したいTestクラス、若しくはTestSuiteクラスを列挙
  3. JUnitCore.mainにお願いする。

これでまとめてドンが出来る。クラス数が少ないうちはこれでいいでしょ。増えてきたらアプリケーションルートにAllTestsを作って、サブアプリ(もしくはパッケージ)ごとにもXxxAllTestsとか作っていけばいいんじゃないかな。そうしないと@SuiteClassesの記述が大変なことになるからな・・・・

ただ問題はこれだとTest追加したときに@SuiteClassesに追加しないといけないんだよね。そこをTest追加まで義務と考えるか、漏れた時を考慮すべきと考えるか。なかなか悩ましいとこですな。