Сбои не собираются в динамически созданном наборе тестов

У меня есть файл jar, который я отражаю из его тестовых классов (junit test).

Я создал экземпляр TestSuite и добавил в него тесты.

Чтобы проверить свой код, я попытался добавить в набор тестов только один пример тестового класса.

TestSuite suite = new TestSuite();
suite.addTest(new JUnit4TestAdapter(ExampleTest.class));

Затем я вызвал suite.run(), чтобы запустить тест:

TestResult result = new TestResult();
suite.run(result);

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

Enumeration<TestFailure> failures = result.failures(); // = empty list

Как я могу получить ошибки с помощью testSuite? Если я использую JUnitCore.runclasses , я получаю список сбоев, но его нельзя использовать с экземпляром TestSuite, который я должен использовать, поскольку я получаю тестовые классы в качестве входных данных.

Изменить-1:

Если возможно создать класс, который расширяет TestSuite и динамически добавляет классы в набор, это будет хорошо для моих нужд.
Любое предложение будет отличным.

Правка-2:

После дальнейшего поиска в Интернете я увидел разницу между сбой и testFailure. Как я могу провалить тест с testFailure, а не с ошибкой?


person BK Tomer    schedule 21.07.2016    source источник


Ответы (1)


После еще одной отладки я обнаружил, что объект TestResult перехватывает ошибки, но сообщает о них как об ошибках (ошибках утверждений).
Я также обнаружил, что TestResult.errors() возвращает перечислитель TestFailure. Каждый TestFailure содержит информацию о сгенерированном исключении, поэтому теперь я могу различать ошибки и сбои, проверяя, какие из ошибок являются ошибками утверждения, а какие нет.

person BK Tomer    schedule 24.07.2016