关于 test
test 是用于运行插件自动化测试和分类检查的技能,涵盖 pytest 校验及端到端测试。它面向插件维护者,整理测试结果并提供可操作的失败详情。
主要功能
- 01运行完整测试套件
- 02执行快速 pytest 检查
- 03按类别选择测试
- 04汇总通过与失败数量
- 05提供文件和行号详情
适用场景
- 01修改后检查插件完整性
- 02运行单个类别的定向测试
- 03定位失败并规划修复
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bitwize-music-studio/ claude-ai-music-skills --skill test安装后在 Claude Code 中输入/test确认已加载。
附带文件test-definitions.md
详细介绍
你的任务
输入:$ARGUMENTS
运行自动化测试以验证插件完整性。逐项执行测试,并清晰报告结果。
默认行为:如果未提供参数,则运行所有测试。
插件测试套件
你是插件的自动化测试运行器。执行每项测试,记录通过/失败情况,并报告可采取行动的结果。
快速自动化测试(/test quick)
如需快速自动验证,请运行 pytest 测试套件。先调用 get_python_command() 获取 $PYTHON(虚拟环境解释器路径——在所有操作系统上均正确,包括原生 Windows):
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -v
涵盖:
- 插件测试(
tests/plugin/)——Frontmatter、模板、参考文档、链接、术语、一致性、配置、状态、流派、集成 - 单元测试(
tests/unit/)——状态解析器/索引器、共享实用程序、母带处理函数
运行特定类别:
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/plugin/test_skills.py -v # Skills only
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/plugin/ -v # All plugin tests
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/unit/ -v # All unit tests
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -m "not slow" -v # Skip slow tests
pytest 能快速捕获常见问题。如需深入的行为测试,请使用下方的完整测试套件。
输出格式
════════════════════════════════════════
CATEGORY: Test Category Name
════════════════════════════════════════
[PASS] Test name
[FAIL] Test name
→ Problem: what's wrong
→ File: path/to/file:line
→ Fix: specific fix instruction
────────────────────────────────────────
Category: X passed, Y failed
────────────────────────────────────────
最后:
════════════════════════════════════════
FINAL RESULTS
════════════════════════════════════════
config: X passed, Y failed
skills: X passed, Y failed
templates: X passed, Y failed
...
────────────────────────────────────────
TOTAL: X passed, Y failed, Z skipped
════════════════════════════════════════
测试类别
所有测试定义都在 test-definitions.md 中。
共 14 个类别:config、skills、templates、workflow、suno、research、mastering、sheet-music、release、consistency、terminology、behavior、quality、e2e。
运行测试前请先阅读该文件,了解每项测试的检查内容。
运行测试
命令
| 命令 | 描述 |
|---|---|
/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 运行快速测试
开发期间如需快速验证,可直接使用 pytest。先调用 get_python_command() 获取 $PYTHON(虚拟环境解释器路径——在所有操作系统上均正确):
# Run all tests
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -v
# Run specific test modules
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/plugin/test_skills.py ${CLAUDE_PLUGIN_ROOT}/tests/plugin/test_templates.py -v
# Verbose with short tracebacks
$PYTHON -m pytest ${CLAUDE_PLUGIN_ROOT}/tests/ -v --tb=short
# Quiet mode (for CI/logs)
$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- 跨技能前置条件链
添加新测试
发现 Bug 时:
- 确定该测试所属的类别
- 添加一个能够捕获该 Bug 的测试
- 运行
/test [category],确认测试失败 - 修复 Bug
- 运行
/test [category],确认测试通过 - 提交修复和新测试
**规则:**每次修复 Bug 都应添加回归测试。
执行提示
- 使用 Grep,并设置
output_mode: content和-n以显示行号 - 使用 Glob 按模式查找文件
- 使用 Read 检查文件内容
- 谨慎使用 Bash(用于 YAML/JSON 验证)
- 报告失败项的准确文件路径和行号
- 提供具体、可执行的修复说明
- 将相关测试分组,以便阅读
- 缺少前置条件时,妥善跳过测试
评论
支持 Markdown