Partager via


MSTEST0001 : Activer ou désactiver explicitement la parallélisation des tests

Propriété Value
Identificateur de la règle MSTEST0001
Titre Activer ou désactiver explicitement la parallélisation des tests
Catégorie Performances
Le correctif est cassant ou non cassant Sans rupture
Activé par défaut Oui
Gravité par défaut Infos
Introduite dans la version 3.2.0
Il existe une correction de code Non

Cause

L’assembly n’est pas marqué d’un attribut [assembly: Parallelize] ou [assembly: DoNotParallelize].

Description de la règle

Par défaut, MSTest exécute les tests d’un même assembly de manière séquentielle, ce qui peut entraîner des limitations importantes des performances. Nous recommandons d’activer l’attribut [assembly: Parallelize] d’asembly pour exécuter les tests en parallèle ou, si l’on sait que l’assembly n’est pas parallélisable, d’utiliser explicitement l’attribut [assembly: DoNotParallelize] au niveau de l’assembly.

La configuration par défaut de [assembly: Parallelize] est équivalente à [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)], ce qui signifie que la parallélisation sera définie au niveau de la classe (et non au niveau de la méthode) et utilisera autant de threads que possible (en fonction de l’implémentation interne).

Comment corriger les violations

Pour corriger une violation de cette règle, ajoutez [assembly: Parallelize] ou [assembly: DoNotParallelize] à l’attribut. Nous vous recommandons d’utiliser [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] pour avoir la meilleure parallélisation.

Quand supprimer les avertissements

Ne supprimez aucun avertissement de cette règle. Lorsque la parallélisation est activée, de nombreuses bibliothèques peuvent bénéficier d’une augmentation massive de leurs performances. Lorsque l’application de test est conçue de manière à empêcher la parallélisation, le fait que l’attribut soit explicitement défini aide les nouveaux développeurs à comprendre les limites de la bibliothèque.