Junit5 аннотация @AfterAll если классов с тестами несколько

Java. Большое кол-во тестов и тестовых классов в проекте. Запускаю классы с тестами параллельно юзая:
https://junit.org/junit5/docs/snapshot/user-guide/#writing-tests-parallel-execution

А вот аннотация @AfterAll при этом отрабатывает несколько раз. И это наверно нормально, но:

Как бы мне выполнить кусок кода ПОСЛЕ прогона всех тестов строго 1 раз?

static

static подходит для задачки выполнение кода ПЕРЕД ВСЕМИ тестами, а вот после нет. У меня мысли залезть в нутро junit5…

В junit 4 эта задача бы легко решалась в рамках TestSuites, правда с параллельностью могли возникнуть ограничения. На StackOverflow кто-то предлагает хук повесить на завершение процесса.
В junit5 добавили afterAllCallback, попробуйте использовать его.

1 лайк

Спасибо! Пробовал, но к сожалению, afterAllCallback работает аналогично @AfterAll, только удобно подключается через расширение…

Не знаю, смотрели уже вот эту тему или еще нет. Там в конце предлагают синглтон + хук:

Там же по ссылке есть предыдущий ответ с решением в виде слушателя. Я попробовал на тестовом мини-проекте работает вроде бы нормально.