Administración del archivo de configuración de Vitest
Si utilizas Vite y tienes un archivo vite.config.js
(o .ts
), Vitest lo leerá para usar los mismos plugins y la configuración de tu aplicación Vite. Si deseas una configuración diferente para las pruebas, o si tu aplicación principal no depende de Vite, puedes:
- Crear un archivo
vitest.config.ts
. Este archivo tendrá mayor prioridad y anulará la configuración devite.config.ts
. Vitest admite todas las extensiones convencionales de JS y TS, pero no admitejson
. Esto significa que todas las opciones envite.config.ts
serán ignoradas. - Pasar la opción
--config
a la CLI, por ejemplo,vitest --config ./path/to/vitest.config.ts
. - Usar
process.env.VITEST
o la propiedadmode
endefineConfig
(se establecerá atest
/benchmark
si no se sobrescribe con--mode
) para aplicar condicionalmente una configuración diferente envite.config.ts
.
Para configurar vitest
, añade la propiedad test
a tu configuración de Vite. También deberás añadir una referencia a los tipos de Vitest usando un comando de triple barra en la parte superior de tu archivo de configuración, si estás importando defineConfig
desde el propio vite
.
Si usas defineConfig
desde vite
, sigue estas instrucciones:
/// <reference types="vitest" />
import { defineConfig } from 'vite';
export default defineConfig({
test: {
// ... Especifica las opciones aquí.
},
});
Si usas defineConfig
desde vitest/config
, sigue estas instrucciones:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
// ... Especifica las opciones aquí.
},
});
Puedes obtener las opciones predeterminadas de Vitest para extenderlas si es necesario:
import { configDefaults, defineConfig } from 'vitest/config';
export default defineConfig({
test: {
exclude: [...configDefaults.exclude, 'packages/template/*'],
},
});
Cuando uses un archivo vitest.config.js
independiente, también puedes extender las opciones de Vite desde otro archivo de configuración, si es necesario:
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default mergeConfig(
viteConfig,
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
);
Si tu configuración de Vite se define como una función, puedes definir la configuración de esta manera:
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default defineConfig(configEnv =>
mergeConfig(
viteConfig(configEnv),
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
)
);