Порт уже открыт, но приложение ещё применяет миграции или прогревает зависимости. Тест отправляет первый запрос слишком рано — и падает только иногда.
Для обычного
GenericContainer Testcontainers по умолчанию ждёт, пока начнёт слушать первый проброшенный порт. Это ещё не гарантия готовности вашего сценария.container.waitingFor(
Wait.forHttp("/ready")
.forStatusCode(200)
);
Здесь
container — уже настроенный контейнер с открытым HTTP-портом, а /ready — ваш endpoint готовности.🟡 Условие должно проверять именно то, что нужно тесту. Если endpoint отвечает 200 до готовности БД, гонка останется. Для других сервисов можно ждать Docker healthcheck или нужную строку в логах.
🔗 Источник
══════ Навигация ══════
Вакансии • Задачи • Собесы
🐸 Библиотека джависта
#Enterprise