我想从多个文本文件创建一个 TestSuite。每个文本文件应该是一个测试并包含该测试的参数。我创建了一个像这样的测试:
@RunWith(Parameterized.class)
public class SimpleTest {
private static String testId = "TestCase 1";
private final String parameter;
@BeforeClass
public static void beforeClass() {
System.out.println("Before class " + testId);
}
@AfterClass
public static void afterClass() {
System.out.println("After class " + testId);
}
@Before
public void beforeTest() {
System.out.println("Before test for " + testId + ":" + parameter);
}
@After
public void afterTest() {
System.out.println("After test for " + testId + ":" + parameter);
}
@Parameters
public static Collection<String[]> getParameters() {
//Normally, read text file here.
return Lists.newArrayList(new String[] { "Testrun 1" }, new String[] { "Testrun 2" });
}
public SimpleTest(final String parameter) {
this.parameter = parameter;
}
@Test
public void simpleTest() {
System.out.println("Simple test for " + testId + ":" + parameter);
}
@Test
public void anotherSimpleTest() {
System.out.println("Another simple test for " + testId + ":" + parameter);
}
}
现在我想创建一个可以多次运行此测试的套件。但是因为 Parameterized、BeforeClass 和 AfterClass 都只运行一次,这似乎有点不可能。
所以,总结一下:
- 我想多次运行测试。
- 每次我需要一个输入参数(如文本文件的名称)
- 每次应调用 BeforeClass、AfterClass 和 Parameters 函数
- 我宁愿不为每个文本文件创建一个子类。
这可能吗?