Закрепите версии зависимостей и образов, создавайте изолированные данные и ждите реальной готовности сервисов. Окружение должно восстанавливаться из кода, а не из ручных настроек.
Вы хорошо затронули проверку readiness и устойчивость к сбоям. А как вы обеспечите повторяемость тестового окружения в CI, чтобы интеграционные тесты были стабильны?
Закрепите версии зависимостей и образов, создавайте изолированные данные и ждите реальной готовности сервисов. Окружение должно восстанавливаться из кода, а не из ручных настроек.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Закрепите версии зависимостей и образов, создавайте изолированные данные и ждите реальной готовности сервисов. Окружение должно восстанавливаться из кода, а не из ручных настроек.
Для каждого job используйте отдельную БД или namespace, применяйте миграции и небольшие детерминированные fixtures. Внешние сервисы подменяйте на контролируемые реализации, когда их поведение не является предметом теста. Readiness проверяйте прикладным запросом с ограниченным ожиданием, а не фиксированным sleep. Учитывайте timezone, locale, часы и random seed. При падении сохраняйте логи контейнеров и параметры запуска, затем гарантированно очищайте ресурсы. Параллельные jobs не должны конкурировать за общие порты и записи.