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,...>>
ouIEnumerable<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 secondobject[]
.
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.