08ea5fbe98
添加用户管理视图、API和状态管理文件
133 lines
4.6 KiB
Bash
Executable File
133 lines
4.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
|
|
COMPOSE_FILE="${PROJECT_ROOT}/docker-compose.test-new.yml"
|
|
ENV_FILE="${PROJECT_ROOT}/.env.test"
|
|
|
|
if [ ! -f "$ENV_FILE" ]; then
|
|
echo "警告: .env.test文件不存在,使用默认配置"
|
|
fi
|
|
|
|
if [ ! -f "$COMPOSE_FILE" ]; then
|
|
echo "错误: docker-compose.test-new.yml文件不存在"
|
|
exit 1
|
|
fi
|
|
|
|
export COMPOSE_FILE
|
|
export ENV_FILE
|
|
|
|
echo "========================================="
|
|
echo "测试环境管理脚本"
|
|
echo "========================================="
|
|
|
|
case "${1:-help}" in
|
|
start)
|
|
echo "启动测试环境..."
|
|
docker-compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" up -d
|
|
echo "等待服务启动..."
|
|
sleep 10
|
|
echo "测试环境启动完成!"
|
|
echo ""
|
|
echo "服务访问地址:"
|
|
echo " API Gateway: http://localhost:${TEST_API_PORT:-8081}"
|
|
echo " Admin Backend: http://localhost:${TEST_ADMIN_PORT:-8082}"
|
|
echo " PostgreSQL: localhost:${TEST_DB_PORT:-5433}"
|
|
echo " Redis: localhost:${TEST_REDIS_PORT:-6380}"
|
|
;;
|
|
|
|
stop)
|
|
echo "停止测试环境..."
|
|
docker-compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" down
|
|
echo "测试环境已停止"
|
|
;;
|
|
|
|
restart)
|
|
echo "重启测试环境..."
|
|
docker-compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" restart
|
|
echo "测试环境已重启"
|
|
;;
|
|
|
|
status)
|
|
echo "测试环境状态:"
|
|
docker-compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" ps
|
|
;;
|
|
|
|
logs)
|
|
if [ -z "${2:-}" ]; then
|
|
echo "显示所有服务日志..."
|
|
docker-compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" logs -f
|
|
else
|
|
echo "显示 $2 服务日志..."
|
|
docker-compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" logs -f "$2"
|
|
fi
|
|
;;
|
|
|
|
clean)
|
|
echo "清理测试环境..."
|
|
docker-compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" down -v
|
|
echo "测试环境已清理"
|
|
;;
|
|
|
|
init-db)
|
|
echo "初始化测试数据库..."
|
|
docker-compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" exec -T test-postgres psql -U ${TEST_DB_USER:-test_user} -d ${TEST_DB_NAME:-everything_test} -f /docker-entrypoint-initdb.d/init-test-db.sql
|
|
echo "测试数据库初始化完成"
|
|
;;
|
|
|
|
reset-db)
|
|
echo "重置测试数据库..."
|
|
docker-compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" exec -T test-postgres psql -U ${TEST_DB_USER:-test_user} -d ${TEST_DB_NAME:-everything_test} -c "CALL reset_test_data();"
|
|
echo "测试数据库已重置"
|
|
;;
|
|
|
|
health)
|
|
echo "检查服务健康状态..."
|
|
echo ""
|
|
echo "PostgreSQL:"
|
|
docker-compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" exec -T test-postgres pg_isready -U ${TEST_DB_USER:-test_user} || echo " ❌ 不健康"
|
|
echo ""
|
|
echo "Redis:"
|
|
docker-compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" exec -T test-redis redis-cli ping || echo " ❌ 不健康"
|
|
echo ""
|
|
echo "API Gateway:"
|
|
curl -f http://localhost:${TEST_API_PORT:-8081}/actuator/health > /dev/null 2>&1 && echo " ✅ 健康" || echo " ❌ 不健康"
|
|
echo ""
|
|
echo "Admin Backend:"
|
|
curl -f http://localhost:${TEST_ADMIN_PORT:-8082}/actuator/health > /dev/null 2>&1 && echo " ✅ 健康" || echo " ❌ 不健康"
|
|
;;
|
|
|
|
test)
|
|
echo "运行测试..."
|
|
echo "请使用相应的测试命令运行测试"
|
|
echo " - 单元测试: npm run test"
|
|
echo " - E2E测试: npm run test:e2e"
|
|
echo " - 性能测试: npm run test:performance"
|
|
;;
|
|
|
|
help|*)
|
|
echo "用法: $0 {start|stop|restart|status|logs|clean|init-db|reset-db|health|test|help}"
|
|
echo ""
|
|
echo "命令说明:"
|
|
echo " start - 启动测试环境"
|
|
echo " stop - 停止测试环境"
|
|
echo " restart - 重启测试环境"
|
|
echo " status - 查看测试环境状态"
|
|
echo " logs - 查看服务日志 [service_name]"
|
|
echo " clean - 清理测试环境(包括数据卷)"
|
|
echo " init-db - 初始化测试数据库"
|
|
echo " reset-db - 重置测试数据"
|
|
echo " health - 检查服务健康状态"
|
|
echo " test - 运行测试"
|
|
echo " help - 显示帮助信息"
|
|
echo ""
|
|
echo "示例:"
|
|
echo " $0 start"
|
|
echo " $0 logs test-api-gateway"
|
|
echo " $0 health"
|
|
;;
|
|
esac
|