Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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

junit
Теги: #<Tag:0x00007f7b6205c7f8>

(Crazair) #1

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

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

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


(Slava Bodya) #2

static


(Crazair) #3

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


(Михаил Братухин) #4

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


(Crazair) #5

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


(Михаил Братухин) #6

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

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