Skip to content
Vitest 3
Main Navigation 指南 & API配置浏览器模式高级 API
3.2.0
2.1.9
1.6.1
0.34.6

简体中文

English
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

简体中文

English
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

主题

Sidebar Navigation

简介

为什么选择 Vitest

快速入门

特性

配置 Vitest

API

测试 API 参考

模拟函数

Vi

expect

expectTypeOf

assert

assertType

指南

命令行界面

测试过滤

测试项目

报告器

覆盖率

快照

模拟

并行

类型测试

Vitest UI

源内测试

测试上下文

测试注解

测试环境

扩展匹配器

IDE 集成

调试

常见错误

迁移指南

迁移到 Vitest 3.0

从 Jest 迁移

性能

分析测试性能

性能优化

浏览器模式

高级 API

与其他测试运行器的比较

页面导航

并行 ​

文件并行 ​

默认情况下,Vitest 会并行运行测试文件。根据指定的 pool 类型,Vitest 使用不同的机制来并行处理测试文件:

  • forks(默认)和 vmForks 在不同的子进程中运行测试。
  • threads 和 vmThreads 在不同的工作线程中运行测试。

“子进程”和“工作线程”统称为“worker”(工作进程或线程)。你可以使用 minWorkers 和 maxWorkers 选项来配置运行的 worker 数量,或者通过 poolOptions 进行更精细的控制。

如果你的测试用例很多,并行运行通常会更快,但这还取决于项目、环境和隔离状态。要禁用文件并行,你可以将 fileParallelism 设置为 false。要了解更多可能的性能改进,请阅读性能指南。

测试并行 ​

与测试文件不同,Vitest 默认会依次运行单个测试文件中的测试。这意味着单个测试文件中的测试将按照它们定义的顺序执行。

Vitest 支持 concurrent 选项,用于同时运行测试。如果设置了此选项,Vitest 会将同一文件中的并发测试进行分组(同时运行的测试数量取决于 maxConcurrency 选项),并使用 Promise.all 来运行它们。

Vitest 不会进行任何智能优化,也不会创建额外的 worker 来运行这些测试。这意味着只有当你大量依赖异步操作时,测试性能才能得到提升。例如,即使指定了 concurrent 选项,以下测试仍将一个接一个地运行,因为它们是同步的:

ts
test.concurrent('the first test', () => {
  expect(1).toBe(1);
});

test.concurrent('the second test', () => {
  expect(2).toBe(2);
});

如果你希望并发运行所有测试,可以将 sequence.concurrent 选项设置为 true。

Pager
上一页模拟
下一页类型测试

基于 MIT 许可证 发布。

版权所有 (c) 2021-Present Vitest Team

https://vitest.dev/guide/parallelism

基于 MIT 许可证 发布。

版权所有 (c) 2021-Present Vitest Team