用途:本资料是 Vitest 测试框架的综合指南,核心聚焦 Jest 到 Vitest 的迁移,适合需要把现有 Jest 测试套件迁移到 Vitest 的开发者。
主要能力:介绍 Vitest 相对 Jest 的优势,包括基于 Vite 和 esbuild 的更快启动、原生 TypeScript 支持、HMR 即时重跑、Jest 兼容 API 以及 ESM 优先架构。
使用方式:推荐用自动化 codemod 迁移,例如 npm install -g @vitest-codemod/jest 后运行 vitest-codemod jest path/to/tests/**/.test.js,或用 npx @vitest-codemod/jest path/to/tests;也可用 Codemod.com 平台 npx codemod jest/vitest。codemod 可自动把 jest.mock()、jest.fn()、jest.spyOn()、jest.setTimeout() 等转换为 vi 对应写法。手动迁移则先卸载 Jest 相关依赖,安装 npm install -D vitest @vitest/ui happy-dom,创建 vitest.config.ts(可设 globals: true、environment: 'happy-dom'),更新 package.json 脚本与 tsconfig 的 types 为 vitest/globals,并把 jest. 替换为 vi.*。
关键差异:Vitest 的 vi.mock 需显式指定 default 导出;mockReset() 行为与 Jest 不同;globals 需显式开启;mocks 不会自动加载;异步测试需用 async/await 而非 done 回调。
常见问题与限制:Testing Library 自动清理在 globals: false 时需手动 cleanup;路径别名需在 resolve.alias 配置;覆盖率默认用 V8,如需 Istanbul 要装 @vitest/coverage-istanbul;快照名称分隔符不同需重新生成。资料未提供具体价格、平台支持范围等信息。