用途
该技能是一个插件的自动化测试运行器,用于验证插件完整性。它按类别执行测试、记录通过/失败情况,并输出可操作的修复建议。默认在未提供参数时运行全部测试。
主要能力
- 覆盖 14 个测试类别:config、skills、templates、workflow、suno、research、mastering、sheet-music、release、consistency、terminology、behavior、quality、e2e。
- 提供快速自动化测试(/test quick),通过 pytest 套件运行,涵盖插件测试(tests/plugin/)和单元测试(tests/unit/)。
- 支持按类别运行测试,例如 /test config、/test skills、/test templates 等。
- 输出格式清晰,按类别分组显示 [PASS] / [FAIL],失败时给出问题、文件路径与行号以及具体修复指令,最后汇总各类别与总计的通过、失败、跳过数量。
使用方式
命令包括:
- /test 或 /test all:运行所有测试
- /test quick:运行 Python 测试运行器(快速自动化检查)
- /test config:配置系统测试
- /test skills:技能定义与文档
- /test templates:模板文件测试
- /test workflow:专辑工作流文档
- /test suno:Suno 集成测试
- /test research:研究工作流测试
- /test mastering:母带处理工作流测试
- /test sheet-music:乐谱生成测试
- /test release:发布工作流测试
- /test consistency:交叉引用检查
- /test terminology:一致语言测试
- /test behavior:基于场景的测试
- /test quality:代码质量检查
- /test e2e:端到端集成测试
快速测试通过 pytest 直接运行。先调用 get_python_command() 获取 $PYTHON(venv 解释器路径,在所有操作系统包括原生 Windows 上均正确),然后执行:
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -v
运行特定模块:
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/plugin/test_skills.py -v # 仅技能
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/plugin/ -v # 所有插件测试
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/unit/ -v # 所有单元测试
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -m "not slow" -v # 跳过慢速测试
其他 pytest 用法:
# 运行所有测试
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -v
# 运行特定测试模块
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/plugin/test_skills.py ${CLAUDE_PLUGIN_ROOT}/tests/plugin/test_templates.py -v
# 详细输出与简短回溯
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -v --tb=short
# 安静模式(用于 CI/日志)
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -q --tb=line
tests/plugin/ 中的测试模块包括:
- test_skills.py:Frontmatter、必填字段、模型验证
- test_templates.py:模板存在性与结构
- test_references.py:参考文档存在性
- test_links.py:内部 markdown 链接
- test_terminology.py:废弃术语检查
- test_consistency.py:版本同步、技能计数
- test_config.py:配置文件验证
- test_state.py:状态缓存工具验证
- test_genres.py:流派目录交叉引用
- test_integration.py:跨技能前置条件链
适用场景
- 创建 PR 之前
- 修改技能或模板之后
- 需要验证插件完整性时
- 开发过程中进行快速验证
限制
- 所有测试定义位于 test-definitions.md,运行测试前需阅读该文件以了解每项测试检查的内容。
- 执行时建议使用 Grep(output_mode: content 和 -n 获取行号)、Glob 查找文件、Read 检查内容,谨慎使用 Bash(YAML/JSON 验证)。
- 失败时需报告确切的 file:line,并提供具体可操作的修复指令。
- 若前置条件缺失,应优雅地跳过测试。
- 添加新测试的规则:发现 bug 时,确定所属类别,添加能捕获该 bug 的测试,运行 /test [category] 验证测试失败,修复 bug,再次运行验证通过,提交修复与新测试。每个 bug 修复都应添加回归测试。