#!/usr/bin/env bash # Запуск E2E тестов Team Board на изолированном окружении. # # Использование: # ./test.sh — все тесты # ./test.sh test_auth.py — один файл # ./test.sh -k "test_login" — по имени # ./test.sh --no-teardown — не убивать после (для отладки) set -euo pipefail ROOT="$(cd "$(dirname "$0")" && pwd)" COMPOSE="docker compose -f $ROOT/docker-compose.test.yml" TESTS_DIR="$ROOT/tests" NO_TEARDOWN=false PYTEST_ARGS=() for arg in "$@"; do if [[ "$arg" == "--no-teardown" ]]; then NO_TEARDOWN=true else PYTEST_ARGS+=("$arg") fi done cleanup() { if [[ "$NO_TEARDOWN" == false ]]; then echo "🧹 Тушим тестовое окружение..." $COMPOSE down -v --remove-orphans 2>/dev/null || true else echo "⚠️ --no-teardown: окружение оставлено (порт 8101)" fi } trap cleanup EXIT echo "🚀 Поднимаем тестовое окружение..." $COMPOSE up -d --build --wait echo "✅ Tracker-test на порту 8101" echo "" # Запускаем тесты cd "$TESTS_DIR" python3 -m pytest "${PYTEST_ARGS[@]:--v --tb=short}" || true