Files
novalon-manage-system/run-local-tests.sh
T
张翔 e2ad1331cc feat: 添加测试框架和覆盖率报告功能
feat(测试): 新增Playwright和Vitest测试配置
feat(测试): 添加测试覆盖率报告生成功能
feat(测试): 实现前后端测试脚本集成

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

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

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

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

chore: 更新依赖版本
chore: 添加测试相关配置文件
2026-03-25 09:03:37 +08:00

126 lines
3.2 KiB
Bash
Executable File

#!/bin/bash
# 本地测试脚本
# 使用本地运行的前端和后端服务进行测试
set -e
echo "🚀 启动Novalon本地测试..."
# 检查Node.js是否安装
if ! command -v node &> /dev/null; then
echo "❌ 错误: Node.js未安装"
exit 1
fi
# 检查npm是否安装
if ! command -v npm &> /dev/null; then
echo "❌ 错误: npm未安装"
exit 1
fi
# 检查服务是否运行
echo "🔍 检查本地服务状态..."
# 检查前端服务
if ! curl -f http://localhost:3001 &> /dev/null 2>&1; then
echo "⚠️ 警告: 前端服务未运行 (http://localhost:3001)"
echo "请先启动前端服务: cd novalon-manage-web && npm run dev"
read -p "是否继续测试? (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
else
echo "✅ 前端服务已运行 (http://localhost:3001)"
fi
# 检查后端服务
if ! curl -f http://localhost:8084/actuator/health &> /dev/null 2>&1; then
echo "⚠️ 警告: 后端服务未运行 (http://localhost:8084)"
echo "请先启动后端服务: cd novalon-manage-api && mvn spring-boot:run"
read -p "是否继续测试? (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
else
echo "✅ 后端服务已运行 (http://localhost:8084)"
fi
# 创建测试结果目录
echo "📁 创建测试结果目录..."
mkdir -p test-results playwright-report
# 进入前端目录
cd novalon-manage-web
# 安装依赖(如果需要)
if [ ! -d "node_modules" ]; then
echo "📦 安装依赖..."
npm install
fi
# 安装Playwright浏览器(如果需要)
if ! npx playwright --version &> /dev/null 2>&1; then
echo "🎭 安装Playwright浏览器..."
npx playwright install --with-deps chromium
fi
# 运行测试
echo "🧪 开始运行测试..."
echo ""
# 设置环境变量
export TEST_BASE_URL=http://localhost:3001
export CI=false
# 运行Playwright测试
npx playwright test --reporter=json --reporter=html --reporter=junit
# 检查测试结果
if [ $? -eq 0 ]; then
echo ""
echo "✅ 测试执行完成!"
echo ""
echo "📊 测试报告:"
echo " - HTML报告: novalon-manage-web/playwright-report/index.html"
echo " - JSON报告: novalon-manage-web/test-results/results.json"
echo " - JUnit报告: novalon-manage-web/test-results/junit.xml"
echo ""
echo "📈 查看HTML报告:"
echo " open novalon-manage-web/playwright-report/index.html"
echo ""
else
echo ""
echo "❌ 测试执行失败!"
echo ""
echo "📊 查看失败详情:"
echo " open novalon-manage-web/playwright-report/index.html"
echo ""
exit 1
fi
# 运行质量门禁检查
echo "🚪 执行质量门禁检查..."
if [ -f "e2e/qualityGate.js" ]; then
node e2e/qualityGate.js check test-results/results.json
else
echo "⚠️ 质量门禁工具未找到,跳过检查"
fi
# 更新测试趋势数据
echo "📈 更新测试趋势数据..."
if [ -f "e2e/testTrendAnalyzer.js" ]; then
node e2e/testTrendAnalyzer.js add test-results/custom-report.json
echo ""
echo "📊 测试趋势分析:"
node e2e/testTrendAnalyzer.js report
else
echo "⚠️ 测试趋势分析工具未找到,跳过分析"
fi
echo ""
echo "🎉 本地测试完成!"
echo ""