Améliorer les performances
Par défaut, Vitest exécute chaque fichier de test dans un environnement isolé basé sur le pool :
- Le pool
threadsexécute chaque fichier de test dans unWorkerséparé. - Le pool
forksexécute chaque fichier de test dans un processus forké séparé. - Le pool
vmThreadsexécute chaque fichier de test dans un contexte VM séparé, tout en utilisant des workers pour le parallélisme.
Cette isolation peut augmenter considérablement la durée d'exécution des tests. Cela peut être indésirable pour les projets qui ne reposent pas sur des effets de bord et qui gèrent correctement leur état (ce qui est généralement le cas pour les projets avec un environnement node). Dans ce cas, désactiver l'isolation peut améliorer la vitesse de vos tests. Pour ce faire, vous pouvez utiliser l'option --no-isolate dans la CLI ou définir la propriété test.isolate à false dans la configuration. Si vous utilisez plusieurs pools simultanément avec poolMatchGlobs, vous pouvez également désactiver l'isolation pour un pool spécifique.
vitest --no-isolateimport { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
isolate: false,
// vous pouvez également désactiver l'isolation uniquement pour des pools spécifiques
poolOptions: {
forks: {
isolate: false,
},
},
},
});TIP
Si vous utilisez le pool vmThreads, l'isolation ne peut pas être désactivée. Utilisez plutôt le pool threads pour améliorer les performances des tests.
Pour certains projets, il peut également être souhaitable de désactiver le parallélisme des fichiers pour améliorer le temps de démarrage. Pour ce faire, utilisez l'option --no-file-parallelism dans la CLI ou définissez la propriété test.fileParallelism à false dans la configuration.
vitest --no-file-parallelismimport { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});