Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
MSTEST0030: typ zawierający
| Właściwość | Wartość |
|---|---|
| Identyfikator reguły | MSTEST0030 |
| Tytuł | Typ zawierający [TestMethod] powinien być oznaczony za pomocą [TestClass] |
| Kategoria | Użycie |
| Poprawka powodująca niezgodność lub niepowodująca niezgodności | Nierozdzielający |
| Domyślnie włączone | Tak |
| Domyślny poziom ważności | Ostrzeżenie rozpoczynające się od wersji 4.0.0, informacje przed |
| Wprowadzone w wersji | 3.5.0 |
| czy istnieje poprawka kodu | Nie |
Przyczyna
Typ zawierający [TestMethod] powinien być oznaczony znacznikiem [TestClass], w przeciwnym razie metoda testowa będzie ignorowana bez ostrzeżenia.
Opis reguły
[TestClass] identyfikuje fixturę, która jest właścicielem wystąpień testowych i wywołań zwrotnych cyklu życia na poziomie klasy. Narzędzie MSTest odnajduje te kontenery, zanim wyliczy ich metody testowe.
[TestMethod] sam nie ustanawia fixtury, więc klasa konkretna bez [TestClass] nie przyczynia się do własnych testów.
Jeśli klasa dostarcza tylko implementacje testów dla klas pochodnych, zadeklaruj ją jako abstrakcyjną, aby wyrazić, że nie jest samodzielnie uruchamialną fixturą. Oznacz każdą konkretną klasę testową za pomocą polecenia [TestClass].
Jak naprawić naruszenia
Oznacz klasę konkretną będącą właścicielem testów za pomocą polecenia [TestClass]. Jeśli klasa dostarcza tylko wspólne zachowanie bazowe, zadeklaruj ją jako abstrakcyjną i oznacz konkretne pochodne klasy testowe atrybutem [TestClass].
Kiedy pomijać ostrzeżenia
Można bezpiecznie wyciszyć ten komunikat diagnostyczny, 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.