SuperAPI AI 工具集

vitest

测试与质量

查看项目

更新于 10-15 16:49

技能介绍

用途:Vitest 是 Vite 驱动的测试框架,适合测试基于 Vite 的应用(复用配置)、需要 Jest 兼容 API 且原生支持 ESM 的代码、进行真实浏览器中的组件测试、快速 watch 模式与 HMR、无需额外配置的 TypeScript 测试以及并行测试执行。

主要能力:Test API(test、describe、hooks)、Expect API(匹配器与断言)、模拟(vi.fn、vi.mock、fake timers)、配置(vitest.config.ts)、CLI、浏览器模式。支持快照测试、异步测试、覆盖率、UI 模式及并行执行。4.1.0 起新增 aroundEach/aroundAll 等控制流钩子,并扩展测试元数据(tags、meta)与 CLI 选项;浏览器模式支持 Playwright 持久上下文与 userEvent.wheel;模拟与定时器新增 doMock()、mockThrow、setTickMode 等。4.1.4 增加实验性 ARIA 快照与 JSON reporter 的 filterMeta。5.0.0 要求 Node.js >=22 与 Vite >=6.4,mock 默认在每个测试前清除,Temporal 可被模拟,并用 concurrent 取代 sequential 选项,移除 webdriverio 浏览器 provider,toHaveTextContent 变严格(替代项 toMatchTextContent)。

使用方式:安装 npm install -D vitest。在 vitest.config.ts 中通过 defineConfig({ test: { … } }) 配置,或扩展 vite.config.ts 的 test 字段。测试文件默认需在文件名中包含 .test. 或 .spec.。常用命令:vitest(watch 默认)、vitest run、vitest run --coverage、vitest sum、vitest -t "should add"、vitest --ui、vitest --browser.enabled。从 Jest 迁移时把 jest 换成 vi,全局 API 需显式开启 globals: true,vi.mock 会被提升(非提升用 vi.doMock),无 jest.requireActual,改用 vi.importActual。环境可选 jsdom、happy-dom、node、edge-runtime,也可用文件顶部 docblock 指定。

限制:5.0.0 移除了部分旧 API 与入口点;配置不再从祖先目录查找;浏览器定位器由字符串改为 locator 对象;报告产物默认输出到 .vitest。其余未提供的细节暂未说明。