Partager via


MSTEST0010 : La méthode ClassInitialize doit avoir une disposition valide

Propriété Value
Identificateur de la règle MSTEST0010
Titre La méthode ClassInitialize doit avoir une disposition valide
Catégorie Utilisation
Le correctif est cassant ou non cassant Sans rupture
Activé par défaut Oui
Gravité par défaut Avertissement
Introduite dans la version 3.3.0
Il existe une correction de code Oui

Cause

Une méthode marquée avec [ClassInitialize] doit avoir une disposition valide.

Description de la règle

Les méthodes marquées avec [ClassInitialize] doivent suivre la disposition suivante pour être valides :

  • elle ne peut pas être déclarée dans une classe générique si le mode InheritanceBehavior n’est pas défini
  • elle doit être public
  • elle doit être static
  • elle ne doit pas être async void
  • elle ne doit pas être une méthode spéciale (finaliseur, opérateur...).
  • elle ne doit pas être générique
  • elle doit prendre un paramètre de type TestContext
  • le type de retour doit être void, Task ou ValueTask
  • Le paramètre d’attribut InheritanceBehavior.BeforeEachDerivedClass doit être spécifié si la classe est abstract.
  • Le paramètre d’attribut InheritanceBehavior.BeforeEachDerivedClass ne doit pas être spécifié si la classe est sealed.

Le type déclarant ces méthodes doit également respecter les règles suivantes :

  • Le type doit être un class.
  • Le class doit être public ou internal (si le projet de test utilise l’attribut [DiscoverInternals]).
  • Le class ne devrait pas être static.
  • Si la class est sealed, elle doit être marquée avec [TestClass] (ou un attribut dérivé).
  • la classe ne doit pas être générique

Comment corriger les violations

Veillez à ce que la méthode corresponde à la disposition décrite ci-dessus.

Quand supprimer les avertissements

Ne supprimez aucun avertissement de cette règle. Si vous ignorez cette règle, les instances marquées sont ignorées ou entraînent une erreur d’exécution.