feat: 添加测试框架和覆盖率报告功能
feat(测试): 新增Playwright和Vitest测试配置 feat(测试): 添加测试覆盖率报告生成功能 feat(测试): 实现前后端测试脚本集成 fix(测试): 修复测试密码不匹配问题 fix(测试): 修正URL等待策略 fix(测试): 调整错误消息选择器 refactor(测试): 重构测试目录结构 refactor(测试): 优化测试用例组织方式 docs: 更新测试报告文档 docs: 添加测试覆盖率报告模板 ci: 添加Docker测试环境配置 ci: 实现测试自动化脚本 chore: 更新依赖版本 chore: 添加测试相关配置文件
This commit is contained in:
+72
-87
@@ -1,99 +1,84 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "========================================="
|
||||
echo "测试环境检查和启动脚本"
|
||||
echo "========================================="
|
||||
# 测试环境启动脚本
|
||||
|
||||
# 检查后端服务
|
||||
echo "检查后端服务..."
|
||||
BACKEND_RUNNING=false
|
||||
for i in {1..30}; do
|
||||
if curl -s http://localhost:8084/actuator/health > /dev/null 2>&1; then
|
||||
echo "✅ 后端服务运行正常 (端口 8084)"
|
||||
BACKEND_RUNNING=true
|
||||
break
|
||||
fi
|
||||
echo "等待后端服务启动... ($i/30)"
|
||||
sleep 2
|
||||
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
|
||||
|
||||
if [ "$BACKEND_RUNNING" = false ]; then
|
||||
echo "❌ 后端服务启动失败"
|
||||
echo "正在启动后端服务..."
|
||||
cd novalon-manage-api
|
||||
nohup mvn spring-boot:run -pl manage-app > /tmp/backend.log 2>&1 &
|
||||
BACKEND_PID=$!
|
||||
echo "后端服务启动中,PID: $BACKEND_PID"
|
||||
|
||||
# 等待后端服务启动
|
||||
for i in {1..60}; do
|
||||
if curl -s http://localhost:8084/actuator/health > /dev/null 2>&1; then
|
||||
echo "✅ 后端服务启动成功"
|
||||
break
|
||||
fi
|
||||
echo "等待后端服务... ($i/60)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
cd ..
|
||||
fi
|
||||
echo "✅ 数据库已就绪"
|
||||
|
||||
# 检查前端服务
|
||||
echo ""
|
||||
echo "检查前端服务..."
|
||||
FRONTEND_RUNNING=false
|
||||
for i in {1..30}; do
|
||||
if curl -s http://localhost:3001 > /dev/null 2>&1; then
|
||||
echo "✅ 前端服务运行正常 (端口 3001)"
|
||||
FRONTEND_RUNNING=true
|
||||
break
|
||||
fi
|
||||
echo "等待前端服务启动... ($i/30)"
|
||||
sleep 2
|
||||
# 等待后端服务就绪
|
||||
echo "⏳ 等待后端服务就绪..."
|
||||
until curl -f http://localhost:8085/actuator/health &> /dev/null 2>&1; do
|
||||
echo "等待后端服务..."
|
||||
sleep 2
|
||||
done
|
||||
|
||||
if [ "$FRONTEND_RUNNING" = false ]; then
|
||||
echo "❌ 前端服务启动失败"
|
||||
echo "正在启动前端服务..."
|
||||
cd novalon-manage-web
|
||||
nohup npm run dev > /tmp/frontend.log 2>&1 &
|
||||
FRONTEND_PID=$!
|
||||
echo "前端服务启动中,PID: $FRONTEND_PID"
|
||||
|
||||
# 等待前端服务启动
|
||||
for i in {1..30}; do
|
||||
if curl -s http://localhost:3001 > /dev/null 2>&1; then
|
||||
echo "✅ 前端服务启动成功"
|
||||
break
|
||||
fi
|
||||
echo "等待前端服务... ($i/30)"
|
||||
echo "✅ 后端服务已就绪"
|
||||
|
||||
# 等待前端服务就绪
|
||||
echo "⏳ 等待前端服务就绪..."
|
||||
until curl -f http://localhost:3002 &> /dev/null 2>&1; do
|
||||
echo "等待前端服务..."
|
||||
sleep 2
|
||||
done
|
||||
|
||||
cd ..
|
||||
fi
|
||||
done
|
||||
|
||||
echo "✅ 前端服务已就绪"
|
||||
|
||||
# 显示服务URL
|
||||
echo ""
|
||||
echo "========================================="
|
||||
echo "服务状态检查"
|
||||
echo "========================================="
|
||||
|
||||
# 最终检查
|
||||
echo "后端服务状态:"
|
||||
if curl -s http://localhost:8084/actuator/health > /dev/null 2>&1; then
|
||||
echo "✅ 后端服务运行正常"
|
||||
else
|
||||
echo "❌ 后端服务未运行"
|
||||
fi
|
||||
|
||||
echo "前端服务状态:"
|
||||
if curl -s http://localhost:3001 > /dev/null 2>&1; then
|
||||
echo "✅ 前端服务运行正常"
|
||||
else
|
||||
echo "❌ 前端服务未运行"
|
||||
fi
|
||||
|
||||
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 ""
|
||||
echo "========================================="
|
||||
echo "环境准备完成,可以开始测试"
|
||||
echo "========================================="
|
||||
Reference in New Issue
Block a user