Gerenciando o Arquivo de Configuração do Vitest
Se você estiver usando o Vite e tiver um arquivo vite.config.js
(ou .ts
, etc.), o Vitest o lerá para integrar os plugins e a configuração do seu aplicativo Vite. Se você deseja uma configuração diferente para testes, ou se seu aplicativo principal não depende especificamente do Vite, você pode:
- Criar um arquivo
vitest.config.ts
. Este arquivo terá prioridade e substituirá a configuração dovite.config.ts
(o Vitest suporta todas as extensões convencionais de JS e TS, mas não suportajson
). Isso significa que todas as opções em seuvite.config.ts
serão ignoradas. - Passar a opção
--config
para a CLI. Por exemplo:vitest --config ./path/to/vitest.config.ts
. - Usar
process.env.VITEST
ou a propriedademode
emdefineConfig
para aplicar condicionalmente configurações diferentes emvite.config.ts
. A propriedademode
será definida comotest
/benchmark
se não for explicitamente definida com--mode
.
Para configurar o Vitest, adicione a propriedade test
à sua configuração do Vite. Você também precisará adicionar uma referência aos tipos do Vitest usando um comando de barra tripla no topo do seu arquivo de configuração, caso esteja importando defineConfig
diretamente do vite
.
Ao usar defineConfig
do vite
, siga este exemplo:
/// <reference types="vitest" />
import { defineConfig } from 'vite';
export default defineConfig({
test: {
// ... Especifique as opções desejadas aqui.
},
});
Ao usar defineConfig
do vitest/config
, siga este exemplo:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
// ... Especifique as opções desejadas aqui.
},
});
Você pode obter as opções padrão do Vitest e estendê-las, se necessário:
import { configDefaults, defineConfig } from 'vitest/config';
export default defineConfig({
test: {
exclude: [...configDefaults.exclude, 'packages/template/*'],
},
});
Ao usar um arquivo vitest.config.js
separado, você também pode estender as opções do Vite a partir de outro arquivo de configuração, se necessário:
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default mergeConfig(
viteConfig,
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
);
Se a sua configuração do Vite for definida como uma função, você pode defini-la da seguinte forma:
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
export default defineConfig(configEnv =>
mergeConfig(
viteConfig(configEnv),
defineConfig({
test: {
exclude: ['packages/template/*'],
},
})
)
);