diff --git a/scripts/test_install.sh b/scripts/test_install.sh new file mode 100644 index 0000000..952ec01 --- /dev/null +++ b/scripts/test_install.sh @@ -0,0 +1,73 @@ +#!/bin/bash +# AirPlan V2 安装脚本测试 +# 模拟运行安装脚本的关键步骤(不实际克隆) + +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PLUGIN_NAME="airplan-v2" +SKILLS_DIR="$HOME/.claude/skills" + +echo "==========================================" +echo "AirPlan V2 安装脚本测试" +echo "==========================================" + +# 测试1: 检查 Python 版本 +echo "[测试1] 检查 Python 版本..." +python3 --version || { echo "错误: 需要 Python 3"; exit 1; } +echo "✓ Python 版本检查通过" + +# 测试2: 检查必要工具 +echo "[测试2] 检查必要工具..." +command -v git >/dev/null 2>&1 || { echo "错误: 需要 git"; exit 1; } +echo "✓ git 可用" + +# 测试3: 创建测试 skills 目录 +echo "[测试3] 测试目录创建..." +TEST_DIR=$(mktemp -d) +mkdir -p "$TEST_DIR/test-skills" +echo "✓ 目录创建成功: $TEST_DIR" + +# 测试4: 模拟插件检查 +echo "[测试4] 模拟插件结构检查..." +# 创建模拟的 plugin.json +mkdir -p "$TEST_DIR/airplan-v2/.claude-plugin" +cat > "$TEST_DIR/airplan-v2/.claude-plugin/plugin.json" << 'PLUGIN_JSON' +{ + "$schema": "https://anthropic.com/claude-code/plugin.schema.json", + "name": "airplan-v2", + "version": "2.0.0" +} +PLUGIN_JSON + +# 创建模拟的 SKILL.md +mkdir -p "$TEST_DIR/airplan-v2/skills/airplan" +cat > "$TEST_DIR/airplan-v2/skills/airplan/SKILL.md" << 'SKILL_MD' +# AirPlan V2 +SKILL_MD + +if [ ! -f "$TEST_DIR/airplan-v2/.claude-plugin/plugin.json" ]; then + echo "错误: plugin.json 不存在" + exit 1 +fi +echo "✓ plugin.json 存在" + +if [ ! -f "$TEST_DIR/airplan-v2/skills/airplan/SKILL.md" ]; then + echo "错误: SKILL.md 不存在" + exit 1 +fi +echo "✓ SKILL.md 存在" + +# 测试5: 检查依赖工具 +echo "[测试5] 检查依赖工具..." +command -v xvfb-run >/dev/null 2>&1 && echo " - xvfb-run: ✓" || echo " - xvfb-run: ✗ (可选)" +command -v ffmpeg >/dev/null 2>&1 && echo " - ffmpeg: ✓" || echo " - ffmpeg: ✗ (可选)" +command -v cmake >/dev/null 2>&1 && echo " - cmake: ✓" || echo " - cmake: ✗ (可选)" + +# 清理测试目录 +rm -rf "$TEST_DIR" + +echo "" +echo "==========================================" +echo "所有测试通过! ✓" +echo "==========================================" \ No newline at end of file