Я делал это в прошлом.Я сделал что-то похожее на то, что было предложено home, я использовал внешний файл (ы), содержащий тесты и их ожидаемые результаты, но используя @Parameterized runner test.
@RunWith(Parameterized.class)
public class ParameterTest {
@Parameters
public static List<Object[]> data() {
List<Object[]> list = new LinkedList<Object[]>();
for (File file : new File("/temp").listFiles()) {
list.add(new Object[]{file.getAbsolutePath(), readFile(file)});
}
return list;
}
private static String readFile(File file) {
// read file
return "file contents";
}
private String filename;
private String contents;
public ParameterTest(String filename, String contents) {
this.filename = filename;
this.contents = contents;
}
@Test
public void test1() {
// here we test something
}
@Test
public void test2() {
// here we test something
}
}
Здесь мы работаем test1()
& test2()
один раз для каждого файла в / temp, с параметрами имени файла и содержимого файла.Тестовый класс создается и вызывается для каждого элемента, который вы добавляете в список в методе, помеченном @ Parameters.
Используя этот тестовый прогон, вы можете перезапустить определенный файл, если он потерпит неудачу;большинство IDE поддерживают повторный запуск одного неудачного теста.Недостаток @Parameterized заключается в том, что нет никакого способа разумно идентифицировать тесты, чтобы имена появлялись в плагине Eclipse JUnit.Все, что вы получаете, это 0, 1, 2 и т. Д. Но, по крайней мере, вы можете перезапустить проваленные тесты.
Как говорит Хоум, хорошее ведение журнала важно для правильной идентификации сбойных тестов и для помощи в отладке, особенно при работе внеIDE.