Илья Чернов — Кэширование контекста Spring в тестах: как ускорить процесс тестирования
Ближайшая конференция: Joker 2023, 9–10 октября (Online), 13–14 октября (Offline, Санкт-Петербург)
Подробности и билеты:
— —
В Wrike в тестах используют несколько больших Spring-контекстов. В CI/CD малое количество таких больших контекстов в тестах, скорее, полезно, так как это позволяет сэкономить время с помощью кэширования. Однако при локальной разработке такие контексты только мешают, потому что время их инициализации велико и необходимо поднимать их каждый раз, когда мы хотим запустить тесты. Можно ли как-то решить эту проблему?
Да, например, так же переиспользовать Spring-контекст при локальной разработке. Spring-контекст во время разработки, как правило, меняется нечасто, поэтому так же, как и в CI/CD, можно кэшировать контекст между запусками тестов, не останавливать JVM после завершения исполнения тестов, а следующие тесты запускать в уже готовой JVM с кэшированным контекстом.
Казалось бы, проблема решается, но как обновлять код во время разработки? С помощью hotswap! DCEVM с HotSwap Agent будут использоваться для расширения возможностей hotswap.
Илья расскажет про плагин для IntelliJ IDEA, который позволяет делать все это и экономить время. Он также продемонстрирует, как можно писать плагины для HotSwap Agent самим.
#java #testing