我曾经将 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"); }
}
随着我添加越来越多的测试,我厌倦了为我添加的每个新测试文件添加一行。当然,我可以将所有文件放在一个测试中:
public class TextualEntailerTest {
@Test testAll() {
foreach (String file: filesInFolder)
testFromFile(file);
}
}
但是,我更喜欢每个文件都是一个单独的测试,因为这样 JUnit 可以很好地统计通过和失败的文件数量。
所以,我的问题是:如何告诉 JUnit 为给定文件夹中的所有文件运行单独的测试,其中每个测试的形式为“testFromFile(file)”?