Gestione del file di configurazione di Vitest
Se utilizzi Vite e hai un file vite.config
, Vitest lo leggerà per allinearsi ai plugin e configurarsi in modo coerente con la tua applicazione Vite. Se desideri una configurazione specifica per i test, o se la tua applicazione principale non utilizza Vite, puoi:
- Creare un file
vitest.config.ts
. Questo file avrà la priorità più alta e sovrascriverà la configurazione divite.config.ts
(Vitest supporta tutte le estensioni JS e TS convenzionali, ma nonjson
). Ciò significa che tutte le opzioni presenti nel tuovite.config
saranno ignorate. - Passare l'opzione
--config
alla CLI, ad esempio:vitest --config ./path/to/vitest.config.ts
- Utilizzare
process.env.VITEST
o la proprietàmode
indefineConfig
(che sarà impostata sutest
/benchmark
se non sovrascritta con--mode
) per applicare una configurazione diversa invite.config.ts
in modo condizionale.
Per configurare vitest
stesso, aggiungi la proprietà test
alla tua configurazione Vite. Sarà inoltre necessario aggiungere un riferimento ai tipi di Vitest tramite un comando triple slash all'inizio del tuo file di configurazione, se stai importando defineConfig
da vite
.
Utilizzando defineConfig
da vite
, dovresti procedere come segue:
/// <reference types="vitest" />
import { defineConfig } from 'vite';
export default defineConfig({
test: {
// ... Specifica qui le opzioni.
},
});
Utilizzando defineConfig
da vitest/config
, dovresti procedere come segue:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
// ... Specifica qui le opzioni.
},
});
Puoi recuperare le opzioni predefinite di Vitest per estenderle se necessario:
import { configDefaults, defineConfig } from 'vitest/config';
export default defineConfig({
test: {
exclude: [...configDefaults.exclude, 'packages/template/*'],
},
});
Quando utilizzi un file vitest.config.js
separato, puoi anche estendere le opzioni di Vite da un altro file di configurazione, se necessario:
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default mergeConfig(
viteConfig,
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
);
Se la configurazione di Vite è definita come una funzione, puoi definirla in questo modo:
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default defineConfig((configEnv) =>
mergeConfig(
viteConfig(configEnv),
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
)
);