Я хочу создать 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 должны вызываться
- Я лучше не делаю подкласс для каждого текстового файла.
Возможно ли это?