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.