Каждый интеграционный тестовый класс заново поднимает контекст Spring
В проекте 80 классов с @SpringBootTest. Почти в каждом свой набор @MockBean (в новых версиях — @MockitoBean): где-то мок платёжного клиента, где-то мок клиента доставки, где-то оба. В логах прогона контекст поднимается десятки раз, прогон идёт 20 минут.
В чём причина?
- Разные наборы моков меняют ключ кэша контекста, и Spring создаёт новый
- Spring не кэширует контекст между тестовыми классами вообще
- Моки Mockito создаются дольше, чем настоящие бины
- Аннотация @SpringBootTest очищает кэш после каждого класса
