Запустите все тестовые файлы в подкаталогах
У меня есть проект со следующим tests
пакет:
tests
|- part1
|- part2
|- part3
|- Tests.java
part1
, part2
и т. д. - это каталоги, содержащие файлы тестовых данных с расширением ".txt". Таких каталогов может быть много с множеством тестовых файлов.
Я хочу Test.java
Файл должен быть параметризованным тестом Junit, таким образом, что он проходит достаточно быстро и запускает все тесты во всех этих подкаталогах и показывает результаты для каждого каталога. Например, что-то вроде:
part1 3/5 pass
|- test1 PASS
|- test2 PASS
|- .....
Я пытался написать этот файл для Test.java
но я не уверен, что это совершенно верно...:-(
@RunWith(Parameterized.class)
public class Tests {
private final String testName;
public Tests(String testName) {
this.testName = testName;
}
@Parameters(name = "{0}")
public static Collection<Object[]> data() {
ArrayList<Object[]> testcases = new ArrayList<Object[]>();
for (File f : new File("src/tests").listFiles()) {
if (f.isFile()) {
String name = f.getName();
if (name.endsWith(".txt")) {
// Get rid of ".txt" extension
String testName = name.substring(0, name.length() - 4);
testcases.add(new Object[] { testName });
}
}
}
return testcases;
}
@Test
public void valid() throws IOException {
runTest(this.testName);
}
private void runTest(String testname) throws IOException {
new TestRunner().run(new File("src/tests/"+testname));
}
}
Пожалуйста, помогите мне сгруппировать по подкаталогу... спасибо