Sdílet prostřednictvím


MSTEST0018: DynamicData by měla být platná.

Vlastnost Hodnota
ID pravidla MSTEST0018
Název DynamicData by měla být platná.
Kategorie Využití
Oprava způsobující chybu nebo chybu způsobující chybu Nenarušující
Povoleno ve výchozím nastavení Ano
Výchozí závažnost Upozorňující
Představeno ve verzi 3.6.0

Příčina

Metoda označená [DynamicData] pomocí by měla mít platné rozložení.

Popis pravidla

Metody označené [DynamicData] také musí být označené (nebo odvozeným atributem [TestMethod] ).

Na člen "zdroj dat" odkazoval:

  • by měl existovat u zadaného typu (aktuální třída, pokud není zadán žádný typ)
  • by nemělo mít přetížení
  • by měla být stejného typu (metoda nebo vlastnost) jako DataSourceType vlastnost.
  • by měla být public
  • by měla být static
  • by neměly být obecné.
  • by měla být bez parametrů
  • by měla vrátit IEnumerable<object[]>, IEnumerable<Tuple<T,...>> nebo IEnumerable<ValueTuple<,...>>

Na člena "zobrazovaný název" byl odkazován:

  • by měl existovat u zadaného typu (aktuální třída, pokud není zadán žádný typ)
  • by nemělo mít přetížení
  • by měla být metoda
  • by měla být public
  • by měla být static
  • by neměly být obecné.
  • by měla vrátit string
  • by měly mít přesně 2 parametry, první a MethodInfo druhý parametr object[]

Příklad:

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

Jak opravit porušení

Ujistěte se, že atribut odpovídá výše popsaným podmínkám.

Kdy potlačit upozornění

Nepotlačujte upozornění na toto pravidlo. Pokud toto pravidlo ignorujete, instance s příznakem se buď přeskočí, nebo dojde k chybě za běhu.

Potlačte upozornění

Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

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

Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v konfiguračním souboru .

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

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.