Partager via


MSTEST0018 : Les données dynamiques doivent être valides

Propriété Value
Identificateur de la règle MSTEST0018
Titre Les données dynamiques doivent être valides
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.6.0

Cause

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

Description de la règle

Les méthodes marquées par [DynamicData] doivent également être marquées par [TestMethod] (ou un attribut dérivé).

Le membre « data source » référencé :

  • doit exister dans le type spécifié (dans la classe courante si aucun type n'est spécifié)
  • ne doit pas avoir de surcharge
  • doit être du même type (méthode ou propriété) que la propriété DataSourceType.
  • devrait être public
  • devrait être static
  • ne doit pas être générique
  • doit être sans paramètre
  • doit renvoyer IEnumerable<object[]>, IEnumerable<Tuple<T,...>> ou IEnumerable<ValueTuple<,...>>

Le membre « nom d'affichage » référencé :

  • doit exister dans le type spécifié (dans la classe courante si aucun type n'est spécifié)
  • ne doit pas avoir de surcharge
  • doit être une méthode
  • devrait être public
  • devrait être static
  • ne doit pas être générique
  • doit renvoyer string
  • doit prendre exactement 2 paramètres, le premier étant MethodInfo et le second object[].

Exemple :

public static string GetDisplayName(MethodInfo methodInfo, object[] data)
{
    return string.Format("{0} ({1})", methodInfo.Name, string.Join(",", data));
}

Comment corriger les violations

Assurez-vous que l'attribut répond aux conditions décrites 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 MSTEST0018
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0018

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.MSTEST0018.severity = none

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