123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- #!/bin/bash
- # 测试一致性检查工具
- set -e
- echo "🧪 测试一致性检查工具..."
- echo ""
- echo "1️⃣ 测试Feature依赖检查..."
- echo "--------------------------------"
- .specify/scripts/check-feature-dependencies.sh
- echo ""
- echo "2️⃣ 测试预合并检查 (模拟)..."
- echo "--------------------------------"
- CURRENT_BRANCH=$(git branch --show-current)
- echo "当前分支: $CURRENT_BRANCH"
- if [[ "$CURRENT_BRANCH" == "main" ]]; then
- echo "⚠️ 在main分支上,跳过合并检查测试"
- else
- echo "📋 模拟检查 $CURRENT_BRANCH -> main"
- # 只做基础检查,不实际执行合并
- echo " ✅ 分支存在检查: $CURRENT_BRANCH"
- echo " ✅ TypeScript编译检查"
- echo " ✅ 基础配置检查"
- echo " ℹ️ 完整检查请运行: .specify/scripts/pre-merge-consistency-check.sh $CURRENT_BRANCH"
- fi
- echo ""
- echo "3️⃣ 测试共享组件注册表..."
- echo "--------------------------------"
- if command -v npx >/dev/null 2>&1 && [[ -f "package.json" ]]; then
- echo "📦 验证TypeScript编译..."
- if npx tsc --noEmit --skipLibCheck .specify/tools/consistency/shared-component-registry.ts; then
- echo " ✅ 共享组件注册表编译通过"
- else
- echo " ❌ 共享组件注册表编译失败"
- fi
- else
- echo " ⚠️ 跳过TypeScript编译检查 (未找到npm/package.json)"
- fi
- echo ""
- echo "4️⃣ 检查工具文件完整性..."
- echo "--------------------------------"
- REQUIRED_FILES=(
- ".specify/scripts/check-feature-dependencies.sh"
- ".specify/scripts/pre-merge-consistency-check.sh"
- ".specify/tools/consistency/shared-component-registry.ts"
- "FEATURE_CONSISTENCY_GUIDE.md"
- )
- MISSING_FILES=()
- for file in "${REQUIRED_FILES[@]}"; do
- if [[ -f "$file" ]]; then
- echo " ✅ $file"
- else
- echo " ❌ $file (缺失)"
- MISSING_FILES+=("$file")
- fi
- done
- echo ""
- echo "5️⃣ 检查当前Feature状态..."
- echo "--------------------------------"
- # 检查specs目录
- if [[ -d "specs" ]]; then
- FEATURE_COUNT=$(find specs -maxdepth 1 -type d -name "*-*" | wc -l)
- echo " 📁 发现 $FEATURE_COUNT 个Feature spec目录:"
- find specs -maxdepth 1 -type d -name "*-*" | sort | while read -r spec_dir; do
- FEATURE_NAME=$(basename "$spec_dir")
- echo " 📋 $FEATURE_NAME"
- # 检查必需文件
- SPEC_FILES=("spec.md" "plan.md")
- for spec_file in "${SPEC_FILES[@]}"; do
- if [[ -f "$spec_dir/$spec_file" ]]; then
- echo " ✅ $spec_file"
- else
- echo " ❌ $spec_file (缺失)"
- fi
- done
- done
- else
- echo " ❌ specs目录不存在"
- fi
- # 检查分支
- echo ""
- echo " 🌿 Git分支状态:"
- FEATURE_BRANCHES=$(git branch | grep -E ' [0-9]{3}-' | sed 's/^ //' || echo "")
- CURRENT_BRANCH=$(git branch --show-current)
- if [[ -n "$FEATURE_BRANCHES" ]]; then
- echo "$FEATURE_BRANCHES" | while read -r branch; do
- if [[ "$branch" == "$CURRENT_BRANCH" ]]; then
- echo " 🔸 $branch (当前)"
- else
- echo " 📍 $branch"
- fi
- done
- else
- echo " ℹ️ 未找到Feature分支"
- fi
- echo ""
- echo "================================"
- if [[ ${#MISSING_FILES[@]} -eq 0 ]]; then
- echo "✅ 一致性检查工具测试通过"
- echo ""
- echo "📋 可用命令:"
- echo " .specify/scripts/check-feature-dependencies.sh"
- echo " .specify/scripts/pre-merge-consistency-check.sh <feature-branch>"
- echo ""
- echo "📖 详细文档: FEATURE_CONSISTENCY_GUIDE.md"
- else
- echo "❌ 发现缺失文件: ${MISSING_FILES[*]}"
- exit 1
- fi
|