用途:Vitest 用于构建快速的单元测试与集成测试,配合 Vite 使用,当前版本为 4.x,Vite 兼容版本为 6.x。
安装与运行:使用 pnpm add -D vitest 安装;在 package.json 中可配置 test、test:run、test:coverage 脚本,分别对应 vitest、vitest run、vitest run --coverage。
配置:在 vitest.config.ts 中通过 defineConfig 配置。Node 环境使用 environment: 'node';React 需引入 @vitejs/plugin-react,使用 environment: 'jsdom' 并配置 setupFiles、css 等;Cloudflare Workers 使用 @cloudflare/vite-plugin,可为 D1/KV 测试设置较长 testTimeout。
主要能力:提供 vi.mock 模块模拟、vi.spyOn 方法监视、vi.stubGlobal 全局模拟;支持 toMatchSnapshot 与 toMatchInlineSnapshot 快照测试,可通过 vitest run --update 更新快照;支持源码内测试(if (import.meta.vitest) 块,生产环境被 tree-shake);支持 vitest.workspace.ts 工作区配置以适配 monorepo;支持通过 playwright 或 webdriverio 的浏览器模式测试;覆盖率使用 @vitest/coverage-v8,可配置 provider、reporter、exclude、thresholds。此外提供 describe、it、expect、beforeEach、afterEach、describe.each 参数化测试等常用模式,并包含从 Jest 迁移的对照(jest.* 换为 vi.*)。
适用场景:Node、React、Cloudflare Workers 等项目的测试;需要模拟、快照、覆盖率、浏览器环境测试或 monorepo 多配置的场景。
限制与注意事项:mock 路径须与 import 路径完全一致;CJS 依赖问题可在 deps.inline 中处理;使用 globals: true 时 TypeScript 需在 tsconfig.json 添加 vitest/globals 类型。其他信息暂未提供。