JUnit 4 を使用して、含まれるテスト クラスの名前がテスト スイートが実行されるまで不明な junit テスト スイートを作成したいと考えています。
JUnit 3では、これを行うことができました:
public final class MasterTester extends TestCase
{
/**
* Used by junit to specify what TestCases to run.
*
* @return a suite containing what TestCases to run
*/
public static TestSuite suite() {
TestSuite suite = new TestSuite();
for(Class<?> klass : gatherTestClasses()) {
suite.addTestSuite(klass);
}
return suite;
}
}
そして、gatherTestClasses()
どのテスト クラスを実行するかをメソッドに判断させます。
JUnit 4 では、ドキュメントには注釈を使用するように記載されています:@SuiteClasses({TestClass1.class, TestClass2.class...})
テスト スイートを構築します。これを行う方法を示すSOの回答は多数あります。残念ながら、私が見た例では、動的に生成された TestClasses のリストを渡すことができないようです。
This SO answerBlockJUnit4ClassRunner
は、私がやりたくないサブクラス化を行う必要があることを示唆しています。
動的に指定されたテスト スイートは、JUnit 4 のどこかにある必要があるように思えます。誰もどこか知っていますか?