Community编程与开发github.com

teefayb/claude-code-setup-demo

诊断失败的或间歇性失败的 Vitest 测试或 CI 检查,找到根本原因,并提出或应用最小的正确修复。当本地或 CI 中测试失败时使用。

claude-code-setup-demo 是什么?

该技能旨在帮助开发者系统性地诊断和修复 Vitest 测试失败问题,无论是本地运行还是 CI 环境中。它定义了一个七步工作流程,从重现测试失败开始,包括处理间歇性失败(flakiness),然后深入分析断言差异和堆栈跟踪。技能要求开发者追溯代码变更历史,并明确将失败原因分类为代码错误、过时测试、测试隔离问题或环境差异。在修复阶段,强调不得通过删除或削弱断言来“通过”测试,必须找到并解决根本原因。最后,要求重新运行测试并生成一份包含原因、分类、修复方法和执行命令的详细报告。该技能适用于任何使用 Vitest 进行测试的 JavaScript/TypeScript 项目,尤其适合与 Claude Code 等 AI 代理配合使用,以自动化测试故障排查流程。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/teefayb/claude-code-setup-demo/tree/HEAD/.claude/skills/triage-test

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

对此失败进行分类:$ARGUMENTS

步骤

  1. 重现。仅运行失败的文件:npx vitest run <file>(添加 -t "<test name>" 以缩小范围)。如果没有指定文件,运行 npm test 并选取第一个失败。如果测试通过,则运行 5 次(npx vitest run <file> --repeat 4)以检查是否是间歇性失败。
  2. 在阅读代码之前,先读取断言差异和堆栈跟踪。说出失败的期望是什么。
  3. 查找变更内容:git log --oneline -10 -- <source file> <test file> 和 git diff main...HEAD -- <files>。
  4. 对原因进行分类,并说明属于哪一类:
    • 代码错误 —— 测试是正确的;修复源代码。
    • 过时测试 —— 行为是有意改变的;更新测试并说明是哪个提交更改了它。
    • 测试隔离 —— 测试之间共享状态(数据文件、环境变量、时间、顺序)。在此仓库中,请检查测试是否使用了 useTempDataFile() 并向 createLink 传递显式的 now,而不是依赖时钟。
    • 环境 —— Node 版本、缺少安装、仅 CI 存在的差异。
  5. 修复根本原因。切勿仅仅为了通过测试而跳过、删除或削弱断言,也不要未经说明就编辑 data/seed.json 来满足测试。
  6. 重新运行该文件,然后运行 npm test。
  7. 报告:原因(一句话)、分类、修复方法和执行的命令。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相关技能