关于 Vitest
Vitest 是一个为 Vite 生态设计的单元测试框架,提供与 Jest 兼容的 API。它支持现代 JavaScript 特性、快照测试和 TypeScript,并与 Vite 开发服务器集成以实现快速反馈。编码 Agent 和开发团队用它来自动化和加速测试流程。
主要功能
- 01运行与 Jest API 兼容的单元测试
- 02支持快照测试、模拟和代码覆盖率分析
- 03与 Vite 开发服务器无缝集成,测试反馈快速
适用场景
- 01验证现代 JavaScript 项目的代码逻辑
- 02在 CI/CD 管道和编码 Agent 中自动化测试
安装
选择你的系统或包管理器,复制命令到终端运行。
$
安装完成后运行vitest --version确认安装成功。
命令示例
常用命令按使用顺序排列。
01
02
详细介绍
Vitest
由 Vite 驱动的新一代测试框架。
文档 | 快速入门 | 示例 | 为什么选择 Vitest?
功能特性
- Vite 的配置、转换器、解析器和插件。使用与你的应用相同的设置!
- Jest 快照
- 内置 Chai 断言,并提供兼容 Jest expect 的 API
- 智能且即时的监视模式,就像用于测试的 HMR!
- 通过
v8或istanbul实现原生代码覆盖率。 - 兼容 Jest 的模拟、桩函数和间谍函数。
- 使用 JSDOM 和 happy-dom 模拟 DOM 和浏览器 API
- 浏览器模式,可在浏览器中运行组件测试
- 组件测试(Vue、React、Svelte、Lit、Marko)
- 通过 Tinybench 支持基准测试
- 支持项目
- 用于类型级测试的 expect-type
- ESM 优先,支持顶层 await
- 开箱即用地支持 TypeScript / JSX
- 支持筛选、超时以及套件和测试的并发执行
- 支持分片
- 报告未捕获的错误
- 在浏览器中原生运行测试
Vitest 要求 Vite >=v6.4.0 和 Node >=v22.12.0
import { assert, describe, expect, it } from 'vitest'
describe('suite name', () => {
it('foo', () => {
expect(1 + 1).toEqual(2)
expect(true).to.be.true
})
it('bar', () => {
assert.equal(Math.sqrt(4), 2)
})
it('snapshot', () => {
expect({ foo: 'bar' }).toMatchSnapshot()
})
})
$ npx vitest
赞助商
致谢
感谢:
- Jest 团队和社区,打造了出色的测试 API
- 感谢 @lukeed 在 uvu 上所做的工作,我们从中汲取了许多灵感。
- 感谢 @pi0 提出并实现了使用 Vite 转换和打包服务端代码的想法。
- 感谢 Vite 团队 一起构思最初的想法。
- 感谢 @patak-dev 起了这个绝妙的包名!
贡献
请参阅贡献指南。
许可证
MIT 许可证 © 2021 至今 VoidZero Inc. 和 Vitest 贡献者
评论
支持 Markdown