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.