Слушатель весеннего теста: как узнать, не прошел ли мой тест? - PullRequest
0 голосов
/ 26 марта 2019

У меня есть несколько очень сложных интеграционных тестов, написанных с использованием среды Spring Test.Что я хотел бы сделать, это получить последние n строк из файла журнала сервера на случай, если тест не пройден.

Для этих целей я создал тест:

@TestExecutionListeners({LogFetchingTestListener.class})  
public MyComplexTestClass extends AbstractTestNGSpringContextTests {
    @Test
    public void myComplexTest() {
        // Here goes the test logic...
    }
}

и тестовый прослушиватель:

public class LogFetchingTestListener extends ABstractTestExecutionListener {
    @Override
    public void afterTestExecution(TestContext context) {
        // Use some spring beans to get entities to connect to servers
    }
}

Все хорошо, но я не смог найти свойства в TestContext илигде-нибудь еще, что даст мне знать, провалился ли мой тест или нет.

Это очень важно, так как у меня большое количество тестов, и совершенно бессмысленно извлекать журналы для тестовых случаев, которые были успешно выполнены.

Предоставляет ли Spring эту информацию тестовым слушателям?Если нет, есть ли обходные пути для этого?

Спасибо.

1 Ответ

0 голосов
/ 26 марта 2019

Я бы рекомендовал переопределить afterTestMethod(TestContext) вместо afterTestExecution(TestContext), поскольку первый будет выполняться после @AfterMethod методов жизненного цикла в тестовом классе.

Чтобы получить исключение (т. Е. Причинунеудачный тест), вам просто нужно получить доступ к testContext.getTestException().

...