MSTEST0018: DynamicData ska vara giltigt
Property | Värde |
---|---|
Regel-ID | MSTEST0018 |
Title | DynamicData ska vara giltigt |
Kategori | Förbrukning |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard | Ja |
Standard allvarlighetsgrad | Varning |
Introducerad i version | 3.6.0 |
Orsak
En metod som är markerad med [DynamicData]
ska ha en giltig layout.
Regelbeskrivning
Metoder som är markerade med [DynamicData]
bör också markeras med [TestMethod]
(eller ett härlett attribut).
Medlemmen "datakälla" refererade till:
- bör finnas på den angivna typen (aktuell klass om ingen typ har angetts)
- bör inte ha överlagringar
- ska vara av samma slag (metod eller egenskap) som egenskapen
DataSourceType
- bör vara
public
- bör vara
static
- bör inte vara generisk
- ska vara parameterlös
- ska returnera
IEnumerable<object[]>
,IEnumerable<Tuple<T,...>>
ellerIEnumerable<ValueTuple<,...>>
Medlemmen "visningsnamn" refererade till:
- bör finnas på den angivna typen (aktuell klass om ingen typ har angetts)
- bör inte ha överlagringar
- bör vara en metod
- bör vara
public
- bör vara
static
- bör inte vara generisk
- bör returnera
string
- ska ta exakt 2 parametrar, den första är
MethodInfo
och den andra ärobject[]
Exempel:
public static string GetDisplayName(MethodInfo methodInfo, object[] data)
{
return string.Format("{0} ({1})", methodInfo.Name, string.Join(",", data));
}
Så här åtgärdar du överträdelser
Kontrollera att attributet matchar de villkor som beskrivs ovan.
När du ska ignorera varningar
Ignorera inte en varning från den här regeln. Om du ignorerar den här regeln hoppas flaggade instanser över eller resulterar i körningsfel.
Undertryck en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable MSTEST0018
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0018
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none
i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0018.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.