crazair
(Crazair)
03.Сентябрь.2018 15:43:39
#1
Java. Большое кол-во тестов и тестовых классов в проекте. Запускаю классы с тестами параллельно юзая:
https://junit.org/junit5/docs/snapshot/user-guide/#writing-tests-parallel-execution
А вот аннотация @AfterAll при этом отрабатывает несколько раз. И это наверно нормально, но:
Как бы мне выполнить кусок кода ПОСЛЕ прогона всех тестов строго 1 раз?
crazair
(Crazair)
05.Сентябрь.2018 14:43:21
#3
static подходит для задачки выполнение кода ПЕРЕД ВСЕМИ тестами, а вот после нет. У меня мысли залезть в нутро junit5…
В junit 4 эта задача бы легко решалась в рамках TestSuites, правда с параллельностью могли возникнуть ограничения. На StackOverflow кто-то предлагает хук повесить на завершение процесса.
В junit5 добавили afterAllCallback, попробуйте использовать его.
1 лайк
crazair
(Crazair)
05.Сентябрь.2018 18:05:47
#5
Спасибо! Пробовал, но к сожалению, afterAllCallback работает аналогично @AfterAll , только удобно подключается через расширение…
Не знаю, смотрели уже вот эту тему или еще нет. Там в конце предлагают синглтон + хук:
Там же по ссылке есть предыдущий ответ с решением в виде слушателя. Я попробовал на тестовом мини-проекте работает вроде бы нормально.