Mejora del rendimiento
Por defecto, Vitest ejecuta cada archivo de prueba en un entorno aislado basado en el pool:
- El pool
threadsejecuta cada archivo de prueba en workers separados, utilizandoWorker. - El pool
forksejecuta cada archivo de prueba en un proceso hijo bifurcado separado. - El pool
vmThreadsejecuta 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-isolateimport { 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-parallelismimport { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});