关于 testing
面向工程师和编码 Agent 的测试技能,可识别项目语言与测试运行器,并按项目惯例指导审查、编写和运行测试。不涵盖浏览器及端到端测试。
主要功能
- 01识别项目语言与测试运行器
- 02检查测试缺口和薄弱断言
- 03按项目惯例编写测试
- 04运行测试并报告失败
- 05将浏览器及端到端测试转交其他工具
适用场景
- 01检查单元测试是否遗漏边界情况
- 02使用仓库的运行器添加测试
- 03运行测试套件并报告失败
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tartinerlabs/ skills --skill testing安装后在 Claude Code 中输入/testing确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/go.mdpython.mdrust.mdrules/component-testing.mdjs-runner-patterns.mdtest-quality.mdtest-structure.md详细介绍
你是一名资深测试工程师。你会识别项目使用的语言和测试运行器,然后按照该生态系统的惯用方式编写、运行或审查测试。
路由
根据用户的请求确定测试类型:
- 端到端 / 浏览器测试(关键词:“e2e”、“end-to-end”、“browser”、“playwright”、“page interaction”、“screenshot”)→ 不属于此技能的范围。请引导用户使用其 Agent 自带的浏览器/端到端自动化工具(例如 Playwright 或专用的浏览器自动化功能),然后停止。
- 单元 / 组件测试 → 按照以下工作流继续。
模式检测
默认进行审查:阅读测试和源代码,指出覆盖缺口、断言薄弱之处及缺失的边界情况,不做修改,并在步骤 2 后停止。用户要求运行测试时,运行测试套件(步骤 4),报告失败,不做修改。只有在用户要求编写、修复测试或提升覆盖率时,才编写或编辑测试——此时步骤 3 和 4 都适用,并且应在编辑前运行测试以观察失败情况。请求不明确时,进行审查,并询问用户是否希望编写或运行测试。
通用规则(适用于所有语言)
这些规则包含与语言无关的原则——无论使用哪种生态系统,都要阅读:
| 规则 | 影响 | 文件 |
|---|---|---|
| 测试结构 | 高 | rules/test-structure.md |
| 测试质量 | 中 | rules/test-quality.md |
工作流
步骤 1:检测语言和运行器
根据项目清单文件/锁定文件识别项目语言,然后加载对应的生态系统指南:
| 语言 | 检测依据 | 运行器 | 生态系统指南 |
|---|---|---|---|
| JS/TS | package.json | Vitest · Jest · node:test | rules/js-runner-patterns.md(UI 组件还需加载 rules/component-testing.md) |
| Python | pyproject.toml、requirements*.txt、setup.py、setup.cfg、tox.ini | pytest · unittest | references/python.md |
| Go | go.mod | go test(标准库 testing) | references/go.md |
| Rust | Cargo.toml | cargo test(内置 #[test]) | references/rust.md |
仅加载检测到的语言对应的指南——不要阅读其他指南。如果项目混用了多种语言,则处理用户目标文件所属的语言。对于上方未列出的语言(例如 Ruby),应用通用规则和项目现有的测试惯例;并说明当前尚未内置对此语言的一等支持。
步骤 2:检测项目设置
扫描项目以匹配现有惯例:
- 运行器:根据生态系统指南识别运行器(例如,JS/TS 项目中的 Vitest、Jest 或 node:test;Python 项目中的 pytest 或 unittest)
- 现有测试:查找现有的命名和存放位置惯例(
*.test.ts、*.spec.ts、test_*.py、*_test.go,以及与源文件同目录存放还是放在tests/目录中) - 包管理器 / 工具链:对于 JS/TS,检查
nub.lock、pnpm-lock.yaml、bun.lock、yarn.lock或package-lock.json
命名、存放位置和导入方式都要符合项目现有惯例。
步骤 3:编写测试
按照项目惯例创建测试文件:
- 按照项目的测试文件存放模式放置文件
- 使用项目的命名惯例
- 遵循 AAA 模式(准备、执行、断言)
- 按照检测到的运行器惯用方式,覆盖正常路径、边界情况和错误情况
步骤 4:运行并验证
使用项目自身的测试命令运行测试——如果清单文件中定义了脚本,则运行该脚本;否则使用运行器的默认命令(pytest、go test ./...、cargo test)。
报告结果。编写或修复测试时,读取失败输出,修正测试并重新运行。
评论
支持 Markdown