Zarządzanie plikiem konfiguracyjnym Vitest
Jeśli używasz Vite i masz plik vite.config, Vitest odczyta go, aby dopasować wtyczki i konfigurację do aplikacji Vite. Jeśli potrzebujesz innej konfiguracji dla testów lub Twoja aplikacja nie bazuje bezpośrednio na Vite, możesz:
- Utworzyć plik
vitest.config.ts. Będzie on miał wyższy priorytet i nadpisze konfigurację zvite.config.ts(Vitest obsługuje wszystkie standardowe rozszerzenia JS i TS, ale nie obsługujejson). Oznacza to, że wszystkie opcje wvite.configzostaną zignorowane. - Użyć opcji
--configw CLI, np.vitest --config ./path/to/vitest.config.ts. - Użyć
process.env.VITESTlub właściwościmodewdefineConfig(która będzie ustawiona natest/benchmark, jeśli nie zostanie nadpisana przez--mode), aby warunkowo zastosować inną konfigurację wvite.config.ts.
Aby skonfigurować sam vitest, dodaj właściwość test do konfiguracji Vite. Konieczne będzie również dodanie referencji do typów Vitest za pomocą dyrektywy potrójnego ukośnika na początku pliku konfiguracyjnego, jeśli importujesz defineConfig z vite.
Używając defineConfig z vite, zrób to w następujący sposób:
/// <reference types="vitest" />
import { defineConfig } from 'vite';
export default defineConfig({
test: {
// ... Określ tutaj opcje.
},
});Używając defineConfig z vitest/config, postępuj zgodnie z poniższym przykładem:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
// ... Określ opcje tutaj.
},
});Możesz pobrać domyślne opcje Vitest i je rozszerzyć, jeśli to konieczne:
import { configDefaults, defineConfig } from 'vitest/config';
export default defineConfig({
test: {
exclude: [...configDefaults.exclude, 'packages/template/*'],
},
});Korzystając z oddzielnego pliku vitest.config.js, możesz również rozszerzyć opcje Vite z innego pliku konfiguracyjnego:
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default mergeConfig(
viteConfig,
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
);Jeżeli konfiguracja Vite jest zdefiniowana jako funkcja, możesz ją zdefiniować w następujący sposób:
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default defineConfig((configEnv) =>
mergeConfig(
viteConfig(configEnv),
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
)
);