Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
| Property | Value |
|---|---|
| Regel-ID | MSTEST0082 |
| Titel | En testklass ärver en livscykel eller testmetod från en annan MSTest-version |
| Kategori | Usage |
| Korrigeringen är antingen brytande eller icke-brytande | Oumbrytbar |
| Aktiverad som standard | Yes |
| Standard allvarlighetsgrad | Varning |
| introducerades i version | 4.4.0 (förhandsversion) |
| Finns det en kodkorrigering | No |
Important
Den här analysatorn är planerad för MSTest 4.4 och är endast tillgänglig i förhandsversioner tills MSTest 4.4.0 släpps.
Orsak
En identifieringsbar testklass ärver en offentlig testmetod eller livscykelmetod från en sammansättning som refererar till en annan huvudversion av MSTest.
Regelbeskrivning
MSTest matchar test- och livscykelattribut med exakt körningstypidentitet. MSTest v3 definierar dessa attribut i Microsoft.VisualStudio.TestPlatform.TestFramework, medan MSTest v4 definierar dem i MSTest.TestFramework. Om ett basbibliotek och ett härlett testprojekt använder olika huvudversioner ignorerar adaptern tyst ärvda attribut från den andra ramverkssammansättningen. Därför identifieras inte ärvda tester och ärvda initierings- eller rensningsmetoder körs inte.
Ett delat testbibliotek som skapats med MSTest v3 kan till exempel deklarera:
public abstract class SharedTests
{
[TestMethod] public void InheritedTest() { }
}
Ett MSTest v4-projekt som härleds från basklassen utlöser diagnostiken:
[TestClass]
public sealed class ProductTests : SharedTests { } // Violation
Analysatorn kontrollerar ärvda testmetoder, testar initierings- och rensningsmetoder samt klassinitierings- och rensningsmetoder som är konfigurerade att köras för härledda klasser.
Så här åtgärdar du överträdelser
Referera till samma MSTest-huvudversion från basbiblioteket och det härledda testprojektet. Kompilera om sammansättningen som deklarerar basklassen och kompilera om sammansättningen som deklarerar det anpassade attributet för ett anpassat attribut som härleds från ett MSTest-attribut.
När du ska ignorera varningar
Ignorera inte varningar från den här regeln. En överträdelse innebär att MSTest tyst hoppar över ärvda tester eller livscykelmetoder.
Undertryck en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable MSTEST0082
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0082
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0082.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.