#!/bin/bash # 测试更新脚本的各个功能模块 set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR/.." echo "==========================================" echo "CTMS 更新脚本功能测试" echo "==========================================" echo "" # 1. 测试帮助信息 echo "1. 测试帮助信息显示" bash scripts/update.sh --help >/dev/null 2>&1 && echo " ✓ 帮助信息正常" || echo " ✗ 帮助信息失败" echo "" # 2. 测试参数解析 echo "2. 测试参数解析" bash scripts/update.sh dev --repo-url https://test.git --branch main --yes --skip-backup 2>&1 | grep -q "确认更新参数" && echo " ✓ 参数解析正常" || echo " ✗ 参数解析失败" echo "" # 3. 测试 Git 检查 echo "3. 测试 Git 环境检查" if git rev-parse --git-dir >/dev/null 2>&1; then echo " ✓ Git 仓库检测正常" else echo " ✗ 不是 Git 仓库" fi echo "" # 4. 测试项目身份验证 echo "4. 测试项目特征文件检查" check_count=0 [[ -f "scripts/install.sh" ]] && ((check_count++)) [[ -f "docker-compose.yaml" ]] && ((check_count++)) [[ -f "backend/app/main.py" ]] && ((check_count++)) [[ -f "README.md" ]] && ((check_count++)) if [[ $check_count -ge 2 ]]; then echo " ✓ 项目特征文件检测正常(找到 $check_count 个)" else echo " ✗ 项目特征文件不足(仅找到 $check_count 个)" fi echo "" # 5. 测试脚本权限 echo "5. 测试脚本执行权限" if [[ -x "scripts/update.sh" ]]; then echo " ✓ 更新脚本可执行" else echo " ✗ 更新脚本不可执行" fi echo "" # 6. 测试当前分支检测 echo "6. 测试当前分支检测" current_branch=$(git branch --show-current 2>/dev/null || echo "unknown") if [[ -n "$current_branch" && "$current_branch" != "unknown" ]]; then echo " ✓ 当前分支: $current_branch" else echo " ✗ 无法检测当前分支" fi echo "" # 7. 测试远程地址检测 echo "7. 测试远程仓库地址检测" remote_url=$(git config "remote.origin.url" 2>/dev/null || echo "") if [[ -n "$remote_url" ]]; then echo " ✓ 远程地址: $remote_url" else echo " ✗ 未配置远程仓库" fi echo "" echo "==========================================" echo "测试完成!" echo "=========================================="