Udostępnij za pośrednictwem


MSTEST0030: typ zawierający [TestMethod] powinien być oznaczony [TestClass]

Właściwości Wartość
Identyfikator reguły MSTEST0030
Tytuł Typ zawierający [TestMethod] powinien być oznaczony za pomocą polecenia [TestClass]
Kategoria Użycie
Poprawka powodująca niezgodność lub niezgodność Niezgodność
Domyślnie włączone Tak
Ważność domyślna Informacje
Wprowadzone w wersji 3.5.0
czy istnieje poprawka kodu Nie.

Przyczyna

Typ zawierający [TestMethod] powinien być oznaczony znakiem [TestClass], w przeciwnym razie metoda testowa będzie dyskretnie ignorowana.

Opis reguły

Narzędzie MSTest uwzględnia metody testowe tylko w kontekście kontenera klasy testowej (klasy oznaczonej atrybutem [TestClass] lub atrybutu pochodnego), co może prowadzić do dyskretnego ignorowania niektórych testów. Jeśli klasa ma reprezentować typowe zachowanie testowe do wykonania przez klasy podrzędne, zaleca się oznaczenie typu jako abstrakcyjnego w celu wyjaśnienia intencji innych deweloperów odczytu kodu.

Jak naprawić naruszenia

Klasa nie abstrakcyjna zawiera metody testowe powinny być oznaczone znakiem "[TestClass]".

Kiedy pomijać ostrzeżenia

Można bezpiecznie pominąć diagnostykę, jeśli masz pewność, że klasa jest dziedziczona i że testy zadeklarowane w tej klasie powinny być uruchamiane tylko w kontekście podklas. Niemniej jednak zalecamy oznaczenie klasy jako abstrakcyjnej.

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

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

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

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