docs/test.sh
markov 7fcf4abed9 feat: isolated test infra — docker-compose.test.yml + test.sh
- Отдельная PostgreSQL в tmpfs (RAM)
- Отдельный Tracker на порту 8101
- Полная изоляция от прода
- ./test.sh для запуска
2026-03-14 10:28:11 +01:00

45 lines
1.2 KiB
Bash
Executable File

#!/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