Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| Property | Value |
|---|---|
| Regel-ID | MSTEST0069 |
| Title | Overgenomen [TestClass] wordt genegeerd door de MSTest-brongenerator |
| Categorie | Usage |
| Fix kan brekend of niet-brekend zijn | Non-breaking |
| standaard ingeschakeld | Yes |
| standaardniveau van ernst | Warning |
| geïntroduceerd in versie | 4.3.0 |
| Is er een oplossing voor de code | No |
Note
Deze analyse wordt in het MSTest.SourceGeneration pakket geleverd en wordt alleen geladen voor projecten die hebben gekozen voor de MSTest-reflectiebrongenerator. Dit is een experimentele functie. Deze is niet van toepassing wanneer de standaarddetectie op basis van weerspiegeling wordt gebruikt.
Oorzaak
Een klasse is bedoeld als een MSTest-testklasse via een [TestClass] kenmerk dat wordt overgenomen van een basisklasse, in plaats van rechtstreeks te [TestClass] declareren.
Beschrijving van regel
De MSTest-brongenerator inventariseert testklassen met behulp van ForAttributeWithMetadataName, die geen overname volgen. Een klasse die [TestClass] van een basistype erft, wordt stilzwijgend overgeslagen door broncodegegenereerde detectie en is niet uitvoerbaar wanneer de broncodegegenereerde provider de actieve reflectie-back-end is.
[TestClass]
public class BaseTests
{
}
// Violation: relies on the inherited [TestClass] attribute.
public class DerivedTests : BaseTests
{
[TestMethod]
public void Test()
{
}
}
Hoe schendingen op te lossen
Pas [TestClass] rechtstreeks toe op de afgeleide klasse, zodat deze wordt gevonden wanneer door bron gegenereerde detectie actief is.
[TestClass]
public class BaseTests
{
}
[TestClass]
public class DerivedTests : BaseTests
{
[TestMethod]
public void Test()
{
}
}
Wanneer waarschuwingen onderdrukken
Onderdrukt geen waarschuwingen van deze regel wanneer brongeneratie is ingeschakeld, omdat de betreffende testklasse niet wordt gedetecteerd of uitgevoerd. U kunt deze onderdrukken als de klasse niet echt bedoeld is om een testklasse te zijn.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable MSTEST0069
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0069
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none in het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0069.severity = none
Zie Hoe u codeanalysewaarschuwingen kunt onderdrukken voor meer informatie.