Vitest #

什么是 Vitest? #

Vitest 是由 Vite 和 Vue.js 团队开发的下一代测试框架,专为 Vite 构建的项目设计。它利用 Vite 的转换管道,提供极速的测试体验,原生支持 ESM、TypeScript、JSX 等现代前端技术栈。

核心定位 #

text
┌─────────────────────────────────────────────────────────────┐
│                         Vitest                               │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  Vite 原生   │  │  极速执行    │  │  ESM 支持   │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  Jest 兼容   │  │  TypeScript │  │  内置覆盖率  │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
└─────────────────────────────────────────────────────────────┘

为什么选择 Vitest? #

优势 #

text
✅ Vite 原生集成
   - 共享 Vite 配置
   - 共享插件生态
   - 零额外配置

✅ 极速执行
   - 毫秒级启动
   - 智能监听
   - 按需编译

✅ Jest 兼容 API
   - 平滑迁移
   - 学习成本低
   - 生态兼容

✅ 开箱即用
   - TypeScript 支持
   - JSX 支持
   - ESM 支持
   - 内置覆盖率

快速开始 #

安装 #

bash
npm install --save-dev vitest

编写测试 #

typescript
// sum.ts
export function sum(a: number, b: number): number {
  return a + b;
}

// sum.test.ts
import { describe, it, expect } from 'vitest';
import { sum } from './sum';

describe('sum', () => {
  it('adds 1 + 2 to equal 3', () => {
    expect(sum(1, 2)).toBe(3);
  });
});

运行测试 #

bash
npx vitest

文档结构 #

text
Vitest 文档
├── 入门基础
│   ├── Vitest 简介
│   ├── 安装与配置
│   ├── 编写第一个测试
│   ├── 使用断言
│   └── 测试生命周期
│
├── 核心功能
│   ├── 异步测试
│   ├── Mock 功能
│   ├── 快照测试
│   └── DOM 测试
│
└── 高级特性
    ├── 自定义配置
    ├── 浏览器模式
    ├── 性能测试
    └── 代码覆盖率

Vitest vs Jest #

特性 Vitest Jest
Vite 集成 ✅ 原生支持 ❌ 需要配置
ESM 支持 ✅ 原生支持 ⚠️ 需要配置
启动速度 ✅ 极快 ⚠️ 较慢
配置复杂度 ✅ 零配置 ⚠️ 需要配置
TypeScript ✅ 原生支持 ⚠️ 需要 ts-jest
生态系统 🔄 发展中 ✅ 成熟

学习路径 #

text
入门阶段
├── Vitest 简介
├── 安装与配置
├── 编写第一个测试
├── 使用断言
└── 测试生命周期

进阶阶段
├── 异步测试
├── Mock 功能
├── 快照测试
└── DOM 测试

高级阶段
├── 自定义配置
├── 浏览器模式
├── 性能测试
└── 代码覆盖率

下一步 #

现在你已经了解了 Vitest 的基本概念,接下来学习 Vitest 简介,开始编写你的第一个测试!

最后更新:2026-03-29