MSTEST0016: Klasa testowa powinna mieć metodę testową

Właściwość Wartość
Identyfikator reguły MSTEST0016
Tytuł Klasa testowa powinna mieć metodę testową
Kategoria Projekt
Poprawka powodująca niezgodność lub niepowodująca niezgodności Nienaruszający zgodności
Domyślnie włączone Tak
Domyślny poziom ważności Info
Wprowadzone w wersji 3.3.0
czy istnieje poprawka kodu Nie

Przyczyna

Klasa testowa nie deklaruje metody testowej ani jej nie dziedziczy oraz nie spełnia warunku wyjątku dla klas zawierających wyłącznie fixture’y.

Opis reguły

Klasa oznaczona [TestClass] normalnie reprezentuje testy wykonywalne. Jeśli nie ma metod testowych, nie zapewnia pokrycia testu i może wskazywać brakujący [TestMethod] atrybut lub niekompletną refaktoryzację.

Reguła wyklucza klasy statyczne zawierające [AssemblyInitialize]metody , [AssemblyCleanup], [GlobalTestInitialize]lub [GlobalTestCleanup] . Te kontenery zapewniają wywołania zwrotne cyklu życia, zamiast samodzielnie przeprowadzać testy.

Jak naprawić naruszenia

Dodaj brakujący [TestMethod] atrybut do rzeczywistego testu lub dodaj zamierzone testy. Jeśli klasa zawiera tylko wywołania zwrotne zestawu lub globalnego cyklu życia, zadeklaruj ją jako statyczną, aby dopasować ją do wyjątku dotyczącego wyłącznie fixture’ów.

Kiedy wyłączać ostrzeżenia

Pomiń diagnostykę, jeśli klasa celowo zawiera tylko wspólne zachowanie klasy bazowej lub wywołania zwrotne cyklu życia i nie spełnia wyjątku dla kontenera statycznego. W przeciwnym razie sprawdź, czy nie brakuje atrybutów testu. Nie dodawaj pustego testu wyłącznie w celu wyciszenia diagnostyki.

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 MSTEST0016
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0016

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji .

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

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.