以前は、次のような JUnit テストをメソッドとして記述していました。
public class TextualEntailerTest {
@Test test1() {...}
@Test test2() {...}
@Test test3() {...}
}
ほとんどのテスト ケースは同様の構造を持っているため、「データ駆動型」にすることにし、テストの内容を XML ファイルに入れました。そこで、メソッド「testFromFile(file)」を作成し、テストを次のように変更しました。
public class TextualEntailerTest {
@Test test1() { testFromFile("test1.xml"); }
@Test test2() { testFromFile("test2.xml"); }
@Test test3() { testFromFile("test3.xml"); }
}
テストを追加するたびに、追加する新しいテスト ファイルごとに 1 行追加するのにうんざりします。もちろん、すべてのファイルを 1 つのテストに入れることができます。
public class TextualEntailerTest {
@Test testAll() {
foreach (String file: filesInFolder)
testFromFile(file);
}
}
ただし、各ファイルを個別のテストにすることをお勧めします。これにより、JUnit は成功したファイルと失敗したファイルの数に関する優れた統計を取得できるためです。
だから、私の質問は次のとおりです。特定のフォルダー内のすべてのファイルに対して、各テストが「testFromFile(file)」の形式である個別のテストを実行するように JUnit に指示する方法は?