跳到內容

提升效能

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

  • threads 池會在個別的 Worker 中執行每個測試檔案
  • forks 池會在個別的 分岔子處理程序 中執行每個測試檔案
  • vmThreads 池在個別 VM 環境 中執行每個測試檔案,但它使用工作執行緒來進行平行處理

這會大幅增加測試時間,對於不依賴副作用且適當清理其狀態的專案而言,這可能並非理想(通常適用於具有 node 環境的專案)。在這種情況下,停用隔離將會提升測試速度。為此,您可以提供 --no-isolate 旗標給 CLI,或將設定檔中的 test.isolate 屬性設為 false。如果您同時使用多個池與 poolMatchGlobs,您也可以停用您正在使用的特定池的隔離。

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

export default defineConfig({
  test: {
    isolate: false,
    // you can also disable isolation only for specific pools
    poolOptions: {
      forks: {
        isolate: false,
      },
    },
  },
})

提示

如果您正在使用 vmThreads 池,您無法停用隔離。改用 threads 池來提升測試效能。

對於某些專案而言,停用平行處理以提升啟動時間也可能是理想的。為此,請提供 --no-file-parallelism 旗標給 CLI,或將設定檔中的 test.fileParallelism 屬性設為 false

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

export default defineConfig({
  test: {
    fileParallelism: false,
  },
})