vitest-dev/vitest
5 articles
前置知识
- ›对 Vite 有基本了解(开发服务器、插件机制、模块转换)
- ›熟悉 npm/pnpm workspaces 和 monorepo 的基本概念
- ›具备 TypeScript 工作经验
01
Vitest 架构概览:基于 Vite 的测试框架是如何组织的
全面梳理 Vitest 的 monorepo 结构与 17 个子包,深入解析 Node 编排层与 Worker 运行时之间的关键边界,以及 Vite 如何成为整个框架的核心支柱。
02
从 CLI 到配置:Vitest 的启动与配置解析流程
完整追踪 Vitest 从二进制入口出发,经过 CLI 解析、配置文件发现、Vite 服务器创建、VitestPlugin 钩子生命周期,直到向 Worker 序列化配置的整个启动链路。
03
Pool 系统:Vitest 如何在 Worker 之间分配和执行测试
深入剖析 Vitest 的三层 Pool 架构、Node 与 Worker 之间的 birpc 通信桥接机制、Worker 启动流程以及测试结果的收集方式。
04
@vitest/runner 内部解析:测试收集、执行与 Hook 系统
深入探讨与框架无关的 @vitest/runner 包——它定义了测试 DSL、将测试文件收集为任务树、通过 hook 和 fixture 执行测试,并管理并发与重试机制。
05
Reporter、覆盖率与扩展 Vitest:输出与插件层
深入讲解 reporter 生命周期、覆盖率提供器、测试排序器、UI 的 WebSocket API、Node 编程式 API,以及 expect/spy/snapshot 子包架构。