Pull to refresh

Comments 6

Небольшой P. S. всем кто хочет попробовать сей инструмент. При всей любви к тест контейнерам, для тяжеловесов вроде оракловых докер образов и просто комплексных тестовых окружении для интеграционников, лучше всё таки использовать docker-maven-plugin и стартовать всё нужное перед failsafe тестами. Оно очень убогое и делает дебаг тестов и кода крайне тяжеловесным (не говоря уже о танцах с бубном чтобы зарегать приложение бегущее в хосте в рамках докер сети, если есть необходимость проксирования запросов и прочего), но позволит уменьшить суммарный рантайм тестов, что всегда есть гуд.

Начиная с Testcontainers 1.12.3, мы добавили "reusable containers", что позволяет переиспользовать контейнер между сессиями тестов при локальной разработке.


Так что теперь не обязательно использовать другой тул :)

Ruyk ждёт 10 секунд и потом, если Кира ему не написал — прибивает контейнеры. Получается, что надо чтобы перерывы между циклами были не больше 10 секунд — идеальное TDD )))

С reusable containers Ryuk не будет прибивать контейнеры которые помечены как reusable, в том и смысл :)

Попробовал, и вправду, так и работает. Там получает Kira вообще не пишет в Ryuk про такие контейнеры. Я думал, что фича с reusable containers предназначена для тестовых сред, где постоянно крутятся тесты и эти 10 секунд — считай вечность.

Статья, выходит, получилась неполная (. Я поправлю. Хотя получается с одной стороны фича крутая и её надо в заголовок статьи было. А с другой фича работает сама по себе, так что о ней будет один абзац. В любом случае, бурные нескончаемые апплодисменты!

А как прибивать контейнеры? Руками? Мне кажется, что нужна фича по остановке reusable контейнеров через, допустим 30 минут неактивности. Можно было бы прокидывать в Ryuk таймаут для контейнера и пусть он не убивает контейнер, пока таймаут не кончится. Таймаут можно тоже в конфиги засунуть. Не сильно сложная вроде фича, я бы даже взялся.

Был не в курсе, в оправдание конечно скажу что в документации про это ни слова, pr в гите в помощь как говорится. Попробуем применить у себя. Пока что, глядя на то как реализовано, работает при ручном запуске контейнеров, как ClassRule или просто Rule в junite однозначно не работает.

Sign up to leave a comment.

Articles