Как в JUnit вывести сообщение 'тесты завершились' один раз после прогона всех тестов?

Для одного класса в JUnit Jupiter подходит @AfterAll. Для всего плана запуска нескольких классов нужен уровень JUnit Platform, например TestExecutionListener.testPlanExecutionFinished().

Короткий ответ

Что ответить на собеседовании

Для одного класса в JUnit Jupiter подходит @AfterAll. Для всего плана запуска нескольких классов нужен уровень JUnit Platform, например TestExecutionListener.testPlanExecutionFinished().

Подробный разбор

Ответ с пояснениями

Для одного класса в JUnit Jupiter подходит @AfterAll. Для всего плана запуска нескольких классов нужен уровень JUnit Platform, например TestExecutionListener.testPlanExecutionFinished().

@AfterAll в каждом классе выполнится несколько раз и не является глобальным завершением набора. Listener регистрируют в Launcher или предусмотренным механизмом обнаружения и выводят сообщение в callback завершения плана. Если сборка запускает несколько процессов или планов, callback тоже будет не единственным на всю сборку. Для строго одного сообщения после всех CI-job лучше использовать завершающий этап оркестратора.

Источник: docs.junit.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее