Как зарегистрировать TestExecutionListener в Junit 5 и определить, все ли тесты выполнены - PullRequest
0 голосов
/ 13 декабря 2018

Привет! Я пытаюсь реализовать интеграционный тест, используя JUNIT 5 в качестве платформы, и мы просто хотим запустить весь процесс один раз, прежде чем все тесты будут выполнены, и остановить все, когда все тесты будут выполнены.

Я нашелне существует простого способа сделать это, так как у нас есть много тестовых классов, и методы BeforeAll и AfterAll работают для тестового класса

Что я нашел, я мог бы сделать это, если бы мог зарегистрировать своих собственных слушателей, нопочему-то это не сработало

import com.google.auto.service.AutoService;
        import org.junit.platform.launcher.TestExecutionListener;
        import org.junit.platform.launcher.TestPlan;

@AutoService(TestExecutionListener.class)
public class StateExecutionListener implements TestExecutionListener {

    public void testPlanExecutionStarted(TestPlan testPlan) {
        System.out.println("##########testPlanExecutionStarted "+testPlan.getRoots());
    }

    public void testPlanExecutionFinished(TestPlan testPlan) {
        System.out.println("##########testPlanExecutionStarted "+testPlan.getRoots());
    }

}

Есть идеи, как мы можем зарегистрировать наших собственных слушателей / каким-либо другим способом определить, все ли тестовые примеры выполнены?Я использую JundlePlatform для запуска своих тестов

1 Ответ

0 голосов
/ 14 декабря 2018

Чтобы автоматически зарегистрировать TestExecutionListener, вы должны сделать это с помощью механизма Java ServiceLoader, как описано в Руководстве пользователя JUnit 5:

https://junit.org/junit5/docs/current/user-guide/#launcher-api-listeners-custom

...