跳到內容

管理 Vitest 設定檔

如果您使用 Vite 並且有 vite.config 檔案,Vitest 會讀取它以與外掛程式相符,並設定為您的 Vite 應用程式。如果您想要有不同的測試設定,或者您的主應用程式並非特別依賴 Vite,您可以

  • 建立 vitest.config.ts,它將具有較高的優先權,並且會覆寫來自 vite.config.ts 的設定(Vitest 支援所有傳統的 JS 和 TS 副檔名,但並不支援 json) - 這表示您 vite.config 中的所有選項都將被忽略
  • 傳遞 --config 選項至 CLI,例如 vitest --config ./path/to/vitest.config.ts
  • defineConfig 上使用 process.env.VITESTmode 屬性(如果未以 --mode 覆寫,將設定為 test/benchmark)以在 vite.config.ts 中有條件地套用不同的設定

若要設定 vitest 本身,請在您的 Vite 設定中新增 test 屬性。如果您從 vite 本身匯入 defineConfig,您還需要在設定檔的最上方使用 三斜線指令 新增對 Vitest 類型的參考。

vite 使用 defineConfig,您應該遵循以下步驟

ts
/// <reference types="vitest" />
import {  } from 'vite'

export default ({
  : {
    // ... Specify options here.
  },
})

vitest/config 使用 defineConfig,您應該遵循以下步驟

ts
import {  } from 'vitest/config'

export default ({
  : {
    // ... Specify options here.
  },
})

您可以擷取 Vitest 的預設選項,以在需要時擴充它們

ts
import { configDefaults, defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    exclude: [...configDefaults.exclude, 'packages/template/*'],
  },
})

在使用一個單獨的 vitest.config.js 時,您也可以在需要時從另一個組態檔擴充 Vite 的選項

ts
import { defineConfig, mergeConfig } from 'vitest/config'
import viteConfig from './vite.config'

export default mergeConfig(viteConfig, defineConfig({
  test: {
    exclude: ['packages/template/*'],
  },
}))

如果您的 Vite 組態定義為一個函式,您可以像這樣定義組態

ts
import { defineConfig, mergeConfig } from 'vitest/config'
import viteConfig from './vite.config'

export default defineConfig(configEnv => mergeConfig(
  viteConfig(configEnv),
  defineConfig({
    test: {
      exclude: ['packages/template/*'],
    },
  })
))