Выполнение SpringBootTest с помощью отказоустойчивого плагина maven с использованием форкаков - это работает из коробки? - PullRequest
0 голосов
/ 06 июня 2019

Предположим, у вас есть приложение Spring-Boot и в этом приложении также набор интеграционных тестов, аннотированных @SpringBootTest и работающих с классом SpringRunner. Они вызываются отказоустойчивым плагином maven , который по умолчанию никак не распараллеливает тесты. Все тесты работают без проблем.

Что изменится, если вы используете функцию отказоустойчивости forkCount - можете ли вы ожидать, что выполнение теста будет работать из коробки? Вам нужно настроить код? На что вам нужно обращать внимание, чтобы потенциально не позволить этим интеграционным тестам запускаться в разветвленной «параллельной» среде через этот плагин? Насколько я понимаю, отказоустойчивый плагин создаст JVM-пакеты forkCount-много, и в каждом из них выполняются некоторые интеграционные тесты. Это звучит так, как будто ничего не нужно делать, вам не нужно делать что-либо поточно-безопасным, вам не нужно превращать Singleton-bean-компоненты в bean-объекты ThreadScoped или что-либо еще - поскольку процесс с несколькими JVM уже должен создавать несколько таких bean-компонентов. Извините, если вопрос кажется странным, я попытался исследовать этот вопрос, но не смог найти ответ.

1 Ответ

1 голос
/ 06 июня 2019

Из Maven doc:

Параметр forkCount определяет максимальное количество процессов JVM

Это означает, что тесты будут выполняться в своем собственном процессе, и поэтому вы будетеесть отдельные экземпляры Spring Boot.Так что вам действительно не нужно заботиться о безопасности потоков.

Но вы должны заботиться о потреблении памяти.

...