Skip to content
Vitest 1
Main Navigation 指南API配置高級
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

開始使用

功能特性

工作區

命令列界面

測試過濾器

報告器

覆蓋率

快照

模擬(Mocking)

測試類型

Vitest UI

瀏覽器模式

原始碼測試

測試上下文

測試環境

擴展匹配器

IDE 整合支援

偵錯

與其他測試執行器的比較

遷移指南

常見錯誤

提升效能

API

測試 API 參考文件

模擬函數

Vi

expect

expectTypeOf

assert

assertType

配置

管理 Vitest 配置文件

配置 Vitest

本頁導覽

提升效能 ​

預設情況下,Vitest 會根據 pool 在隔離的環境中執行每個測試檔案:

  • threads pool 在單獨的 Worker 中執行每個測試檔案
  • forks pool 在單獨的 forked child process 中執行每個測試檔案
  • vmThreads pool 在單獨的 VM context 中執行每個測試檔案,但它使用 workers 進行平行處理

這會大幅增加測試所需的時間。對於不依賴副作用且能正確清理其狀態的專案來說,這可能不是理想的選擇(通常是 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
上一頁常見錯誤
下一頁測試 API 參考文件

以 MIT 授權條款 發布。

版權所有 (c) 2024 Mithril Contributors

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

以 MIT 授權條款 發布。

版權所有 (c) 2024 Mithril Contributors