Skip to content
Vitest 1
Main Navigation 指南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

快速开始

特性

工作区

命令行界面

测试筛选

报告器

代码覆盖率

快照(Snapshot)

模拟(Mocking)

类型测试

Vitest UI

浏览器模式

源码内测试

测试上下文

测试环境

扩展匹配器

IDE 集成

调试

与其他测试运行器的比较

迁移指南

常见错误

提升性能

页面导航

提升性能 ​

默认情况下,Vitest 基于 pool 在隔离的环境中运行每个测试文件:

  • threads pool 在独立的 Worker 中运行每个测试文件。
  • forks pool 在独立的 派生子进程 中运行每个测试文件。
  • vmThreads pool 在独立的 虚拟机上下文 中运行每个测试文件,但它使用 worker 来实现并行。

这种隔离机制会显著增加测试时间。对于那些不依赖副作用、并且能正确清理状态的项目(通常 node 环境的项目都是如此),这可能不是期望的行为。在这种情况下,禁用隔离可以提升测试速度。为此,您可以在 CLI 中使用 --no-isolate 标志,或者在配置中将 test.isolate 属性设置为 false。如果您同时使用多个通过 poolMatchGlobs 定义的 pool,也可以为特定 pool 禁用隔离。

bash
vitest --no-isolate
ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    isolate: false,
    // 也可以仅为特定的 pool 禁用隔离
    poolOptions: {
      forks: {
        isolate: false,
      },
    },
  },
});

TIP

如果您正在使用 vmThreads pool,则无法禁用隔离。请使用 threads pool 来提高测试性能。

对于某些项目,禁用并行执行也能缩短启动时间。为此,请在 CLI 中使用 --no-file-parallelism 标志,或者在配置中将 test.fileParallelism 属性设置为 false。

bash
vitest --no-file-parallelism
ts
import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    fileParallelism: false,
  },
});
Pager
上一页常见错误

基于 MIT 许可证 发布。

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

https://v1.vitest.dev/guide/improving-performance

基于 MIT 许可证 发布。

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