管理 Vitest 配置文件
如果您正在使用 Vite 並且有一個 vite.config
檔案,Vitest 會讀取它,以匹配您的 Vite 應用程式的插件和設定。如果您想要為測試設定不同的設定,或者您的主要應用程式不特別依賴 Vite,您可以選擇:
- 建立
vitest.config.ts
,它將具有較高優先級,並且會覆寫vite.config.ts
中的設定(Vitest 支援所有傳統的 JS 和 TS 擴展名,但不支援json
);這表示您的vite.config
中的所有選項都將被忽略。 - 透過 CLI 傳遞
--config
選項,例如vitest --config ./path/to/vitest.config.ts
。 - 使用
process.env.VITEST
或defineConfig
上的mode
屬性(如果沒有使用--mode
覆寫,則會設定為test
/benchmark
)以在vite.config.ts
中有條件地套用不同設定。
要設定 vitest
本身,請在您的 Vite 設定中加入 test
屬性。如果您是從 vite
匯入 defineConfig
,您還需要在設定檔頂部使用 三斜線指令 來引用 Vitest 類型。
使用 vite
的 defineConfig
,您應該遵循以下方式:
ts
/// <reference types="vitest" />
import { defineConfig } from 'vite';
export default defineConfig({
test: {
// ... 在此處指定選項。
},
});
使用 vitest/config
的 defineConfig
,您應該遵循以下方式:
ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
// ... 在此處指定選項。
},
});
您可以取得 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/*'],
},
})
)
);