测试技能:行为驱动的测试工作流
为每个功能编写可靠测试,覆盖失败路径,确保覆盖率不低于80%。
该技能是项目内部的测试规范,不涉及外部权限或敏感数据操作,但缺少对测试过程中可能产生的副作用(如文件写入、环境变量)的说明,也没有明确的数据流透明性和回滚机制。同时,发布者身份未知,未验证。因此扣分。
技能描述了测试工作流和质量标准,但缺乏具体的测试配置文件和示例,且只静态审查,未实际运行。关键路径(如覆盖率达到80%的验证)未得到复现,异常输入的失败反馈质量未说明。因此扣分。
技能适用于编写和运行测试的场景,但缺乏明确的非适用边界,触发条件虽列出但不够精确。同时,未考虑中国网络环境及中文支持,但作为内部流程影响较小。因此扣分。
技能结构清晰,包含流程、检查清单和常见错误,但缺少版本记录、变更日志、维护责任说明,以及依赖安装步骤。许可和出处有提供但未在技能文件中注明。因此扣分。
技能能指导测试实践,但未验证实际效果,也无具体示例输出。静态评估无法确认其直接可用性或边际价值,因此扣分。
仓库有CI工作流,但技能本身没有独立的测试或可执行的验证材料。静态审查无法验证技能效果,因此扣分。
- 该技能是项目内部测试规范,可能不适用其他项目或环境。
- 未验证发布者身份,下载或使用需谨慎。
- 技能中提到的测试命令和配置需在项目环境中验证,不保证通用性。
- 覆盖率和测试流程的声明未实际执行验证,需自行测试。
这个 Skill 能做什么,适合哪些场景?
这是一个关于测试编写和运行的标准与流程技能。它要求每个功能都必须有测试,引导开发者先列出风险场景,再编写描述行为而非实现的测试,并确保每个describe块至少覆盖一个失败路径。技能规定了测试目录结构、两种测试环境(node和jsdom)、以及使用bun和Vitest 4运行测试。其目标是确保在提交代码前,所有新功能和修改的逻辑都有充分的测试覆盖,达到至少80%的覆盖率目标。
该技能强制要求编写测试:在添加新功能、修改现有逻辑或声称任务完成前,必须进行测试。它提供了一套编写测试的标准,包括描述行为而非实现细节、覆盖失败路径、保持每个测试聚焦。它定义了测试目录结构(unit、integration、regression、e2e),并规定了文件名规范(*.test.ts和*.dom.test.ts)。它要求使用bun run test运行所有测试,使用bun run test:coverage检查覆盖率,并确保新源文件不被排除在覆盖率之外。
- 当开发者添加新功能并需要编写相应测试时,该技能提供指南。
- 当开发者修改已有逻辑并需要更新现有测试时,该技能提供流程。
- 当开发者在提交代码前需要确保测试覆盖时,该技能提供检查清单。
- 当开发者需要为高风险场景(如依赖返回undefined或抛出错误)编写测试时,该技能建议从风险入手。
这个 Skill 有哪些优点和局限?
- 明确的行为驱动测试标准,避免实现细节测试。
- 强制失败路径测试,降低未测试的风险。
- 提供详细的目录结构和文件命名规范,易于组织。
- 包含覆盖率目标和命令,便于量化测试质量。
- 仅适用于使用Vitest和bun的项目,不适用于其他测试框架。
- 技能未提供示例命令的上下文(如测试配置),可能需额外设置。
- 没有提及如何处理测试失败时的调试步骤。
- 依赖AionUi生态,独立使用需要手动配置。
如何安装这个 Skill?
此技能是AionUi仓库的一部分,位于.claude/skills/testing/SKILL.md。安装AionUi桌面应用后,技能即可用于支持的CLI代理(如Claude Code、Codex、Hermes Agent)。对于独立使用,将SKILL.md放入项目的.claude/skills/testing/目录即可。
如何使用这个 Skill?
在所有新的或修改的逻辑上激活该技能。按照技能步骤操作:1. 列出风险场景;2. 编写行为测试(每个describe至少一个失败路径);3. 运行bun run test验证;4. 运行bun run test:coverage检查覆盖率;5. 提交前更新现有测试。在开始测试时,可以说:“我将使用测试技能来确保测试覆盖率。”
这个 Skill 与同类方案有什么区别?
该技能与Claude Code自身测试工作流类似,但专门针对Vitest和bun,而Claude Code通常支持更广泛的测试框架。