Получи случайную криптовалюту за регистрацию!

Обычная ситуация, когда для локального прогона системных тесто | Типа про IT

Обычная ситуация, когда для локального прогона системных тестов поднимается связка из баз данных и прочих сервисов средствами docker compose. Перед запуском нужно “апнуть” контейнеры, дождаться их живого состояния и только потом запустить сами тесты, для чего есть bash-скрипт или makefile (или оба сразу) с каким-нибудь с потолка взятым sleep между вызовами, чтоб уж наверняка.

Я не знаю как принято решать эту проблему в прогрессивном обществе, но и sleep в минуту это как-то слишком. Поэтому мы тут у себя в команде используем простой, но эффективный wait-for-it. Выглядит примерно так:

1. docker-compose up хуё-моё
2. poetry run wait-for-it \
--parallel \
--timeout 240 \
--service postgres:5432 \
--service exasol:8563 \
-- echo "postgres and exasol are up and running"
3. poetry run pytest -s systests


Скрипт, разумеется, блокирующий, в этом весь смысл.