Otimizando o Desempenho
Por padrão, o Vitest executa cada arquivo de teste em um ambiente isolado, baseado no pool configurado:
- O pool
threads
executa cada arquivo de teste em umWorker
separado. - O pool
forks
executa cada arquivo de teste em um processo filho separado. - O pool
vmThreads
executa cada arquivo de teste em um contexto VM separado, utilizando workers para paralelismo.
Embora isso garanta o isolamento entre os testes, pode aumentar significativamente o tempo de execução, o que pode ser desnecessário para projetos que não dependem de efeitos colaterais e que realizam a limpeza adequada do estado (o que geralmente se aplica a projetos que utilizam o ambiente node
). Nesses casos, desabilitar o isolamento pode acelerar seus testes. Para isso, você pode usar a flag --no-isolate
na CLI ou definir a opção test.isolate
como false
no arquivo de configuração. Se você estiver utilizando múltiplos pools simultaneamente com poolMatchGlobs
, também é possível desabilitar o isolamento para um pool específico.
vitest --no-isolate
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
isolate: false,
// você também pode desabilitar o isolamento apenas para pools específicos
poolOptions: {
forks: {
isolate: false,
},
},
},
});
TIP
Se você estiver usando o pool vmThreads
, não é possível desabilitar o isolamento. Considere usar o pool threads
para melhorar o desempenho dos seus testes.
Para alguns projetos, pode ser interessante desabilitar o paralelismo entre arquivos para reduzir o tempo de inicialização da execução dos testes. Para isso, utilize a flag --no-file-parallelism
na CLI ou defina a opção test.fileParallelism
como false
no arquivo de configuração.
vitest --no-file-parallelism
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});