Запустите все тестовые файлы в подкаталогах

У меня есть проект со следующим 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));
    }   
}

Пожалуйста, помогите мне сгруппировать по подкаталогу... спасибо

0 ответов

Другие вопросы по тегам