SuperAPI AI 工具集

test

测试与质量

查看项目

更新于 10-15 15:26

技能介绍

用途

该技能是一个插件的自动化测试运行器,用于验证插件完整性。它按类别执行测试、记录通过/失败情况,并输出可操作的修复建议。默认在未提供参数时运行全部测试。

主要能力

  • 覆盖 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 修复都应添加回归测试。