- Отдельная PostgreSQL в tmpfs (RAM) - Отдельный Tracker на порту 8101 - Полная изоляция от прода - ./test.sh для запуска
45 lines
1.2 KiB
Bash
Executable File
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
|