Améliorer les performances
Par défaut, Vitest exécute chaque fichier de test dans un environnement isolé basé sur le pool :
- Le pool
threads
exécute chaque fichier de test dans unWorker
séparé. - Le pool
forks
exécute chaque fichier de test dans un processus forké séparé. - Le pool
vmThreads
exé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-isolate
import { 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-parallelism
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
fileParallelism: false,
},
});