Partager via


MSTEST0011 : La méthode ClassCleanup doit avoir une disposition valide

Propriété Value
Identificateur de la règle MSTEST0011
Titre La méthode ClassCleanup 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
Existe-t-il une correction de code Oui

Cause

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

Description de la règle

Les méthodes marquées avec [ClassCleanup] 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
  • Il ne doit pas prendre de paramètre. Cependant, à partir de MSTest 3.8, il peut avoir un seul paramètre 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.

Supprimer un avertissement

Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.

#pragma warning disable MSTEST0011
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0011

Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0011.severity = none

Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.