feat: 添加测试框架和覆盖率报告功能

feat(测试): 新增Playwright和Vitest测试配置
feat(测试): 添加测试覆盖率报告生成功能
feat(测试): 实现前后端测试脚本集成

fix(测试): 修复测试密码不匹配问题
fix(测试): 修正URL等待策略
fix(测试): 调整错误消息选择器

refactor(测试): 重构测试目录结构
refactor(测试): 优化测试用例组织方式

docs: 更新测试报告文档
docs: 添加测试覆盖率报告模板

ci: 添加Docker测试环境配置
ci: 实现测试自动化脚本

chore: 更新依赖版本
chore: 添加测试相关配置文件
This commit is contained in:
张翔
2026-03-25 09:03:37 +08:00
parent 117978e148
commit e2ad1331cc
126 changed files with 18083 additions and 7805 deletions
+72 -87
View File
@@ -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 "========================================="