MSTEST0029: Metoda publiczna powinna być metodą testową

Właściwość Wartość
Identyfikator reguły MSTEST0029
Tytuł Metoda publiczna powinna być metodą testową
Kategoria Projekt
Poprawka niekompatybilna lub kompatybilna wstecznie Niedzielący
Domyślnie włączone Nie
Domyślna ważność Informacja
Wprowadzone w wersji 3.5.0
czy istnieje poprawka kodu Tak

Przyczyna

Metoda public powinna być metodą testową.

Opis reguły

public Metoda klasy oznaczonej za pomocą [TestClass] powinna być metodą testową (oznaczoną za pomocą [TestMethod]). Reguła ignoruje metody oznaczone atrybutami [TestInitialize]lub [TestCleanup] .

Sama publiczna widoczność nie czyni z metody testu. Ta konwencja opt-in ułatwia przechwycenie brakującego atrybutu [TestMethod] i odróżnienie punktów wejścia testowego od metod pomocniczych. Pomocnik może nadal być prawidłowym, publicznie dostępnym elementem kodu, ale narzędzie MSTest nie odnajduje go jako niezależnego testu.

Jak naprawić naruszenia

Dodaj [TestMethod], jeśli metoda ma być testem. Jeśli jest pomocnikiem, zapewnij mu najmniejszą widoczność, jakiej wymagają miejsca wywołujące, zamiast przekształcać go w test.

Kiedy pomijać ostrzeżenia

Pomiń diagnostykę, jeśli metoda jest celowo publiczną metodą pomocniczą lub musi spełniać kontrakt publiczny. Nie ignoruj braku atrybutu w zamierzonym teście, ponieważ ten test nie zostanie wykonany.

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

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

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

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