#!/bin/bash # 测试环境启动脚本 set -e echo "🚀 启动Novalon测试环境..." # 检查Docker是否安装 if ! command -v docker &> /dev/null; then echo "❌ 错误: Docker未安装" exit 1 fi if ! command -v docker-compose &> /dev/null; then echo "❌ 错误: Docker Compose未安装" exit 1 fi # 清理旧的测试容器和镜像 echo "🧹 清理旧的测试环境..." docker-compose -f docker-compose.test.yml down -v # 创建测试结果目录 echo "📁 创建测试结果目录..." mkdir -p test-results playwright-report # 启动测试环境 echo "🐳 启动测试环境容器..." docker-compose -f docker-compose.test.yml up -d # 等待服务启动 echo "⏳ 等待服务启动..." sleep 5 # 检查服务状态 echo "🔍 检查服务状态..." docker-compose -f docker-compose.test.yml ps # 等待数据库就绪 echo "⏳ 等待数据库就绪..." until docker-compose -f docker-compose.test.yml exec -T postgres-test pg_isready -U novalon_test -d manage_system_test &> /dev/null 2>&1; do echo "等待数据库..." sleep 2 done echo "✅ 数据库已就绪" # 等待后端服务就绪 echo "⏳ 等待后端服务就绪..." until curl -f http://localhost:8085/actuator/health &> /dev/null 2>&1; do echo "等待后端服务..." sleep 2 done echo "✅ 后端服务已就绪" # 等待前端服务就绪 echo "⏳ 等待前端服务就绪..." until curl -f http://localhost:3002 &> /dev/null 2>&1; do echo "等待前端服务..." sleep 2 done echo "✅ 前端服务已就绪" # 显示服务URL echo "" echo "🌐 测试环境已启动完成!" echo "" echo "服务访问地址:" echo " - 前端: http://localhost:3002" echo " - 后端: http://localhost:8085" echo " - 数据库: localhost:55433" echo "" echo "运行测试:" echo " docker-compose -f docker-compose.test.yml run playwright-test" echo "" echo "停止测试环境:" echo " docker-compose -f docker-compose.test.yml down" echo "" echo "查看日志:" echo " docker-compose -f docker-compose.test.yml logs -f" echo ""