148 lines
3.6 KiB
Bash
148 lines
3.6 KiB
Bash
#!/bin/bash
|
|
|
|
# 绑定管理功能测试运行脚本
|
|
# 遵循 Tauri 开发规范的测试执行流程
|
|
|
|
set -e
|
|
|
|
echo "🧪 开始运行绑定管理功能测试..."
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# 函数:打印带颜色的消息
|
|
print_message() {
|
|
local color=$1
|
|
local message=$2
|
|
echo -e "${color}${message}${NC}"
|
|
}
|
|
|
|
# 函数:运行命令并检查结果
|
|
run_command() {
|
|
local description=$1
|
|
local command=$2
|
|
|
|
print_message $BLUE "📋 $description"
|
|
|
|
if eval $command; then
|
|
print_message $GREEN "✅ $description - 成功"
|
|
return 0
|
|
else
|
|
print_message $RED "❌ $description - 失败"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# 检查依赖
|
|
print_message $YELLOW "🔍 检查测试环境..."
|
|
|
|
# 检查 Rust 环境
|
|
if ! command -v cargo &> /dev/null; then
|
|
print_message $RED "❌ Cargo 未安装,请先安装 Rust"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查 Node.js 环境
|
|
if ! command -v node &> /dev/null; then
|
|
print_message $RED "❌ Node.js 未安装"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查 pnpm
|
|
if ! command -v pnpm &> /dev/null; then
|
|
print_message $RED "❌ pnpm 未安装"
|
|
exit 1
|
|
fi
|
|
|
|
print_message $GREEN "✅ 测试环境检查完成"
|
|
|
|
# 切换到项目目录
|
|
cd "$(dirname "$0")/.."
|
|
|
|
# 运行后端测试
|
|
print_message $YELLOW "🦀 运行 Rust 后端测试..."
|
|
|
|
# 运行项目-模板绑定测试
|
|
run_command "项目-模板绑定单元测试" "cargo test project_template_binding_tests --lib"
|
|
|
|
# 运行素材-模特绑定测试
|
|
run_command "素材-模特绑定单元测试" "cargo test material_model_binding_tests --lib"
|
|
|
|
# 运行集成测试
|
|
run_command "绑定管理集成测试" "cargo test integration::binding_management_integration_tests --lib"
|
|
|
|
# 运行所有后端测试
|
|
run_command "所有后端测试" "cargo test --lib"
|
|
|
|
# 运行前端测试
|
|
print_message $YELLOW "⚛️ 运行前端测试..."
|
|
|
|
# 安装依赖(如果需要)
|
|
if [ ! -d "node_modules" ]; then
|
|
run_command "安装前端依赖" "pnpm install"
|
|
fi
|
|
|
|
# 运行前端单元测试
|
|
run_command "前端组件测试" "pnpm test:unit"
|
|
|
|
# 运行前端集成测试
|
|
run_command "前端集成测试" "pnpm test:integration"
|
|
|
|
# 运行所有前端测试
|
|
run_command "所有前端测试" "pnpm test"
|
|
|
|
# 生成测试覆盖率报告
|
|
print_message $YELLOW "📊 生成测试覆盖率报告..."
|
|
|
|
# 后端覆盖率
|
|
run_command "后端测试覆盖率" "cargo tarpaulin --out Html --output-dir target/coverage"
|
|
|
|
# 前端覆盖率
|
|
run_command "前端测试覆盖率" "pnpm test:coverage"
|
|
|
|
# 运行性能测试
|
|
print_message $YELLOW "⚡ 运行性能测试..."
|
|
|
|
# 后端性能测试
|
|
run_command "后端性能测试" "cargo bench"
|
|
|
|
# 前端性能测试
|
|
run_command "前端性能测试" "pnpm test:performance"
|
|
|
|
# 运行端到端测试
|
|
print_message $YELLOW "🔄 运行端到端测试..."
|
|
|
|
# 构建应用
|
|
run_command "构建应用" "pnpm tauri build"
|
|
|
|
# 运行 E2E 测试
|
|
run_command "端到端测试" "pnpm test:e2e"
|
|
|
|
# 测试总结
|
|
print_message $GREEN "🎉 所有测试完成!"
|
|
|
|
# 显示测试结果摘要
|
|
echo ""
|
|
print_message $BLUE "📈 测试结果摘要:"
|
|
echo " - 项目-模板绑定功能: ✅"
|
|
echo " - 素材-模特绑定功能: ✅"
|
|
echo " - 前端组件测试: ✅"
|
|
echo " - 集成测试: ✅"
|
|
echo " - 性能测试: ✅"
|
|
echo " - 端到端测试: ✅"
|
|
|
|
# 显示覆盖率信息
|
|
if [ -f "target/coverage/tarpaulin-report.html" ]; then
|
|
print_message $BLUE "📊 后端覆盖率报告: target/coverage/tarpaulin-report.html"
|
|
fi
|
|
|
|
if [ -f "coverage/index.html" ]; then
|
|
print_message $BLUE "📊 前端覆盖率报告: coverage/index.html"
|
|
fi
|
|
|
|
print_message $GREEN "✨ 绑定管理功能测试全部通过!"
|