Configuration du fichier Vitest
Si vous utilisez Vite et que vous avez un fichier vite.config
, Vitest le lira pour s'aligner sur les plugins et la configuration de votre application Vite. Si vous souhaitez une configuration différente pour les tests, ou si votre application principale ne repose pas sur Vite, vous pouvez :
- Créer un fichier
vitest.config.ts
. Ce fichier sera prioritaire et remplacera la configuration devite.config.ts
. Vitest prend en charge toutes les extensions JS et TS conventionnelles, mais pasjson
. Cela signifie que toutes les options de votre fichiervite.config
seront ignorées. - Passer l'option
--config
à la CLI, par exemple :vitest --config ./path/to/vitest.config.ts
. - Utiliser
process.env.VITEST
ou la propriétémode
dedefineConfig
(qui sera définie àtest
/benchmark
si elle n'est pas surchargée par--mode
) pour appliquer conditionnellement une configuration différente dansvite.config.ts
.
Pour configurer vitest
lui-même, ajoutez la propriété test
à votre configuration Vite. Vous devrez également référencer les types Vitest en utilisant une directive triple slash en haut de votre fichier de configuration, si vous importez defineConfig
directement depuis vite
.
Pour utiliser defineConfig
de vite
, procédez comme suit :
/// <reference types="vitest" />
import { defineConfig } from 'vite';
export default defineConfig({
test: {
// ... Définissez les options ici.
},
});
Pour utiliser defineConfig
de vitest/config
, procédez comme suit :
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
// ... Définissez les options ici.
},
});
Vous pouvez étendre les options par défaut de Vitest si nécessaire :
import { configDefaults, defineConfig } from 'vitest/config';
export default defineConfig({
test: {
exclude: [...configDefaults.exclude, 'packages/template/*'],
},
});
Avec un fichier vitest.config.js
distinct, vous pouvez également étendre les options de Vite à partir d'un autre fichier de configuration si nécessaire :
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default mergeConfig(
viteConfig,
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
);
Si votre configuration Vite est définie sous forme de fonction, vous pouvez définir la configuration comme suit :
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default defineConfig(configEnv =>
mergeConfig(
viteConfig(configEnv),
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
)
);