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.
| Property | Wartość |
|---|---|
| Identyfikator reguły | MSTEST0082 |
| Title | Klasa testowa dziedziczy cykl życia lub metodę testową z innej wersji MSTest |
| Kategoria | Usage |
| Poprawka jest przełomowa lub nieprzełomowa | Non-breaking |
| Domyślnie włączone | Yes |
| domyślna ciężkość | Warning |
| wprowadzone w wersji | 4.4.0 |
| Czy istnieje poprawka kodu | Nie. |
Przyczyna
Wykrywalna klasa testowa dziedziczy publiczną metodę testową lub metodę cyklu życia z zestawu, który odwołuje się do innej głównej wersji biblioteki MSTest.
Opis reguły
Narzędzie MSTest pasuje do atrybutów testu i cyklu życia według dokładnej tożsamości typu środowiska uruchomieniowego. Program MSTest v3 definiuje te atrybuty w programie Microsoft.VisualStudio.TestPlatform.TestFramework, a program MSTest v4 definiuje je w pliku MSTest.TestFramework. Jeśli biblioteka podstawowa i projekt testowy pochodny używają różnych wersji głównych, adapter dyskretnie ignoruje dziedziczone atrybuty z innego zestawu struktury. W związku z tym odziedziczone testy nie są wykrywane, a odziedziczone metody inicjowania lub czyszczenia nie są uruchamiane.
Na przykład udostępniona biblioteka testowa utworzona za pomocą biblioteki MSTest v3 może zadeklarować:
public abstract class SharedTests
{
[TestMethod] public void InheritedTest() { }
}
Projekt MSTest w wersji 4, który pochodzi z klasy bazowej, wyzwala diagnostykę:
[TestClass]
public sealed class ProductTests : SharedTests { } // Violation
Analizator sprawdza odziedziczone metody testowe, metody inicjowania i oczyszczania testów oraz metody inicjowania i oczyszczania klas, które są skonfigurowane do uruchamiania dla klas pochodnych.
Jak naprawić naruszenia
Użyj tej samej głównej wersji MSTest zarówno w bibliotece bazowej, jak i w pochodnym projekcie testowym. Ponownie skompiluj zestaw, który deklaruje klasę bazową i dla atrybutu niestandardowego pochodzącego z atrybutu MSTest, ponownie skompiluj zestaw, który deklaruje atrybut niestandardowy.
Kiedy pomijać ostrzeżenia
Nie ignoruj ostrzeżeń z tej zasady. Naruszenie tej zasady oznacza, że MSTest po cichu pomija dziedziczone testy lub metody cyklu życia.
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 MSTEST0082
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0082
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0082.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.