一个 Python 测试框架,写小型测试简单,也能支撑应用和库的复杂功能测试。
- Star
- 17,271
- Fork
- 2,095
- 未关闭 Issue
- 361
- 最近提交
- 2小时前
这是什么?
Vitest 是一个基于 Vite 构建的 JavaScript / TypeScript 测试框架。测试与应用共用同一套 Vite 配置、转换器、解析器和插件,无需额外维护测试构建配置。它提供类似 Jest 的 API,内置 Chai 断言并兼容 Jest expect,同时支持快照、mock、stub 和 spy。
框架覆盖多种测试场景:监听模式可只重跑受影响的测试,支持通过 v8 或 istanbul 收集原生代码覆盖率,并可借助 JSDOM 或 happy-dom 模拟 DOM。Browser Mode 可在真实浏览器中运行组件测试,仓库提供 Vue、React、Svelte、Lit、Marko 等示例。基准测试基于 Tinybench,类型级测试基于 expect-type。
运行 Vitest 需要 Vite 6.4.0 及以上版本和 Node 22.12.0 及以上版本。
核心功能
- 01复用项目的 Vite 配置、转换器和插件运行测试。
- 02兼容 Jest 的 expect API,内置 Chai 断言与快照。
- 03监听模式只重跑受影响的测试。
- 04通过 v8 或 istanbul 收集原生代码覆盖率。
- 05Browser Mode 可在真实浏览器中运行组件测试。
- 06内置基于 Tinybench 的基准测试与基于 expect-type 的类型测试。
适用场景
- 为基于 Vite 的前端或 Node.js TypeScript 项目编写单元测试。
- 在真实浏览器中对 Vue、React、Svelte 或 Lit 组件做测试。
- 将 Jest 测试迁移到与 Vite 原生集成的测试运行器。
- 在 CI 中收集代码覆盖率并执行类型级断言。
快速上手
- 1
确保已安装 Node.js v22.12.0 或更高版本(Vitest 还需要 Vite v6.4.0 或更高版本)
- 2
使用 npx 运行 Vitest
npx vitest
使用前须知
- 需要 Node.js v22.12.0 或更高版本,以及 Vite v6.4.0 或更高版本。
收录于专题
标签
常见问题
- vitest 是什么?
- 基于 Vite 的下一代测试框架,可复用项目现有的 Vite 配置与插件运行测试。 Vitest 是一个基于 Vite 构建的 JavaScript / TypeScript 测试框架。测试与应用共用同一套 Vite 配置、转换器、解析器和插件,无需额外维护测试构建配置。它提供类似 Jest 的 API,内置 Chai 断言并兼容 Jest expect,同时支持快照、mock、stub 和 spy。
- vitest 可以免费使用吗?用的什么许可证?
- vitest 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- vitest 还在维护吗?
- 活跃维护中。vitest 最近一次提交是在 2026年10月22日。
- vitest 适合用来做什么?
- 为基于 Vite 的前端或 Node.js TypeScript 项目编写单元测试。 在真实浏览器中对 Vue、React、Svelte 或 Lit 组件做测试。 将 Jest 测试迁移到与 Vite 原生集成的测试运行器。 在 CI 中收集代码覆盖率并执行类型级断言。
- vitest 怎么安装和运行?
- 确保已安装 Node.js v22.12.0 或更高版本(Vitest 还需要 Vite v6.4.0 或更高版本) 使用 npx 运行 Vitest: npx vitest
- 在哪里获取 vitest?
- 源代码和安装说明在 GitHub 上:https://github.com/vitest-dev/vitest
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
Jest 是一款 JavaScript 测试框架,内置断言、模拟和快照测试,并提供交互式监听模式。
轻量的 React DOM 测试工具,按用户实际使用的方式查询和操作组件。
Hurl 是一个命令行工具,用纯文本格式定义并运行、测试 HTTP 请求。
统一的 Web 开发工具链,通过一个 vp 命令整合 Vite、Vitest、Oxlint、Oxfmt 等工具,并管理 Node.js 与包管理器。
Cypress 是一个面向浏览器应用的端到端与组件测试框架,基于 JavaScript 编写测试。