Le pool vmThreads exécute chaque fichier de test dans un contexte VM séparé, mais il utilise des workers pour le parallélisme.
Cela augmente considérablement les temps de test, ce qui peut ne pas être souhaitable pour les projets qui ne dépendent pas des effets de bord et nettoient correctement leur état (ce qui est généralement vrai pour les projets avec un environnement node). Dans ce cas, désactiver l’isolation améliorera la vitesse de vos tests. Pour cela, vous pouvez fournir le drapeau --no-isolate à la CLI ou définir la propriété test.isolate dans la configuration à false. Si vous utilisez plusieurs pools en même temps avec poolMatchGlobs, vous pouvez également désactiver l’isolation pour un pool spécifique que vous utilisez.
Pour certains projets, il peut également être souhaitable de désactiver le parallélisme pour améliorer le temps de démarrage. Pour cela, fournissez le drapeau --no-file-parallelism à la CLI ou définissez la propriété test.fileParallelism dans la configuration à false.
Par défaut, Vitest exécute des tests dans pool: 'forks'. Bien que le pool 'forks' soit meilleur pour les problèmes de compatibilité (processus en attente et segfaults), il peut être légèrement plus lent que pool: 'threads' dans des projets plus vastes.
Vous pouvez tenter d’améliorer le temps d’exécution des tests en changeant l’option pool dans la configuration :
Le sharding des tests signifie exécuter un petit sous-ensemble de cas de test à la fois. Cela peut être utile lorsque vous avez plusieurs machines qui pourraient être utilisées pour exécuter des tests simultanément.
Pour diviser les tests Vitest en plusieurs exécutions différentes, utilisez l’option --shard avec l’option --reporter=blob :
Collectez les résultats stockés dans le répertoire .vitest-reports de chaque machine et fusionnez-les avec l’option --merge-reports :