MSTEST0018: Wartość DynamicData powinna być prawidłowa
Właściwości | Wartość |
---|---|
Identyfikator reguły | MSTEST0018 |
Tytuł | Wartość DynamicData powinna być prawidłowa |
Kategoria | Użycie |
Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
Domyślnie włączone | Tak |
Ważność domyślna | Ostrzeżenie |
Wprowadzone w wersji | 3.6.0 |
Przyczyna
Metoda oznaczona elementem [DynamicData]
powinna mieć prawidłowy układ.
Opis reguły
Metody oznaczone za pomocą [DynamicData]
powinny być również oznaczone znakiem [TestMethod]
(lub atrybutem pochodnym).
Przywoływany element członkowski "źródła danych":
- powinna istnieć w określonym typie (bieżąca klasa, jeśli nie określono żadnego typu)
- nie powinien mieć przeciążeń
- powinna być tego samego rodzaju (metoda lub właściwość) co
DataSourceType
właściwość - powinna być
public
- powinna być
static
- nie powinna być ogólna
- powinna być bez parametrów
- powinna zwrócić wartość
IEnumerable<object[]>
,IEnumerable<Tuple<T,...>>
lubIEnumerable<ValueTuple<,...>>
Element członkowski "nazwa wyświetlana" odwołuje się do:
- powinna istnieć w określonym typie (bieżąca klasa, jeśli nie określono żadnego typu)
- nie powinien mieć przeciążeń
- powinna być metodą
- powinna być
public
- powinna być
static
- nie powinna być ogólna
- powinna zwrócić
string
- powinna przyjmować dokładnie 2 parametry, pierwszą i
MethodInfo
drugąobject[]
Przykład:
public static string GetDisplayName(MethodInfo methodInfo, object[] data)
{
return string.Format("{0} ({1})", methodInfo.Name, string.Join(",", data));
}
Jak naprawić naruszenia
Upewnij się, że atrybut jest zgodny z warunkami opisanymi powyżej.
Kiedy pomijać ostrzeżenia
Nie pomijaj ostrzeżeń dla tej reguły. Jeśli zignorujesz tę regułę, oflagowane wystąpienia zostaną pominięte lub spowodują błąd środowiska uruchomieniowego.
Pomijanie ostrzeżenia
Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable MSTEST0018
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0018
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji .
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0018.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.