跳至内容

为什么选择 Vitest

注意

本指南假设您熟悉 Vite。开始学习的最佳方法是阅读 为什么选择 Vite 指南,以及 使用 ViteJS 的下一代前端工具,这是一个流媒体,其中 Evan You 演示了主要概念。

对 Vite 原生测试运行器的需求

Vite 对常见 Web 模式的开箱即用支持、诸如全局导入和 SSR 原语之类的功能,以及它众多插件和集成,正在培育一个充满活力的生态系统。它的开发和构建故事是它成功的关键。对于文档,有几个由 Vite 提供支持的基于 SSG 的替代方案。但是,Vite 的单元测试故事并不明确。现有的选项,如 Jest,是在不同的环境中创建的。Jest 和 Vite 之间存在大量重复,迫使用户配置两个不同的管道。

使用 Vite 开发服务器在测试期间转换您的文件,可以创建一个简单的运行器,它不需要处理转换源文件的复杂性,并且可以专注于在测试期间提供最佳的 DX。一个使用您应用程序相同配置(通过 vite.config.js)的测试运行器,在开发、构建和测试期间共享一个通用的转换管道。它可以通过相同的插件 API 扩展,让您和您的工具维护者提供与 Vite 的一流集成。一个从一开始就考虑了 Vite 的工具,利用了它在 DX 方面的改进,例如它的即时热模块替换 (HMR)。这就是 Vitest,一个由 Vite 提供支持的下一代测试框架。

鉴于 Jest 的广泛采用,Vitest 提供了一个兼容的 API,允许您在大多数项目中将其用作直接替换。它还包括在设置单元测试时所需的常见功能(模拟、快照、覆盖率)。Vitest 非常重视性能,并使用 Worker 线程尽可能并行运行。一些端口的测试运行速度快了一个数量级。默认情况下启用监视模式,使其与 Vite 推崇的开发优先体验保持一致。即使在 DX 方面取得了所有这些改进,Vitest 仍然通过仔细选择其依赖项(或直接内联所需的部分)来保持轻量级。

Vitest 的目标是成为 Vite 项目的首选测试运行器,即使对于不使用 Vite 的项目,它也是一个可靠的替代方案。

继续阅读 入门指南

Vitest 与 X 有什么不同?

您可以查看 比较 部分,详细了解 Vitest 与其他类似工具的不同之处。