Mejora del rendimiento
Por defecto, Vitest ejecuta cada archivo de prueba en un entorno aislado basado en el pool
:
- El pool
threads
ejecuta cada archivo de prueba en workers separados, utilizandoWorker
. - El pool
forks
ejecuta cada archivo de prueba en un proceso hijo bifurcado separado. - El pool
vmThreads
ejecuta cada archivo de prueba en un contexto VM separado, pero utiliza workers para el paralelismo.
Este aislamiento puede incrementar significativamente el tiempo de ejecución de las pruebas. Esto podría no ser deseable para proyectos que no dependen de efectos secundarios y que gestionan su estado de forma adecuada (algo común en proyectos con entorno node
). En este caso, desactivar el aislamiento puede mejorar la velocidad de tus pruebas. Para ello, puedes pasar el flag --no-isolate
a la interfaz de línea de comandos (CLI) o establecer la propiedad test.isolate
en la configuración como false
. Si estás utilizando varios pools a la vez con poolMatchGlobs
, también puedes desactivar el aislamiento para un pool específico.
vitest --no-isolate
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
isolate: false,
// también puedes desactivar el aislamiento solo para pools específicos
poolOptions: {
forks: {
isolate: false,
},
},
},
});
TIP
Si estás utilizando el pool vmThreads
, no se puede deshabilitar el aislamiento. Utiliza el pool threads
en su lugar para mejorar el rendimiento de tus pruebas.
En algunos casos, puede ser conveniente desactivar el paralelismo a nivel de archivo para reducir el tiempo de inicio. Para ello, pasa el flag --no-file-parallelism
a la interfaz de línea de comandos (CLI) o establece la propiedad test.fileParallelism
en la configuración como false
.
vitest --no-file-parallelism
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});