用途:该技能面向 Vitest + TypeScript(含 Next.js 16)测试,目标是产出高信号、低不稳定、快速的测试套件,并优化本地开发体验与 CI 吞吐。
主要能力:编写或修复单元、集成、React 组件与类型测试;排查 flake;设计最小测试矩阵(正常路径、边界、错误路径、关键不变量);按需生成或更新 vitest.config.ts、多项目配置、CI 覆盖配置、setupTests.ts、测试工具与 mock;提供可度量的性能调优建议。
使用方式:本地用 vitest(TTY 下默认 watch),CI 用 vitest run。测试文件就近放置,如 src/foo.ts → src/foo.test.ts。Next.js 16 基线安装 vitest、@vitejs/plugin-react、jsdom、@testing-library/react、@testing-library/dom、vite-tsconfig-paths,并设 test.environment='jsdom'。池默认 forks;纯 JS/TS 单元可考虑 threads,使用原生插件或 process.* 时用 forks。test.isolate 默认 true,前端/组件测试保持开启。CI 可持久化 node_modules/.vite/vitest 缓存,用 junit 报告,用 --shard 配合 blob reporter 与 --merge-reports 分片合并。多环境用 test.projects(旧 workspace 名称已弃用)。
限制:Vitest 目前不支持异步 Server Components,需改用 E2E。fakeTimers.toFake 含 nextTick 时不支持 --pool=forks,支持 --pool=threads。避免真实计时器、网络与时钟;mock 需恢复。
权威细节见 https://vitest.dev/config、https://vitest.dev/guide/cli、https://nextjs.org/docs/app/guides/testing/vitest。