MSTest-onderdrukkingsregels

Onderdrukkingsregels onderdrukken automatisch diagnostische gegevens van andere analyses (zoals Roslyn of Visual Studio threading analyzers) die niet van toepassing zijn in de context van MSTest-tests.

Regels in deze categorie

Regel-id Title Onderdrukt
MSTEST0027 Verwijder asynchrone achtervoegsel voor testmethoden. VSTHRD200
MSTEST0028 Onderdruk het async-achtervoegsel voor testfixture-methoden. VSTHRD200
MSTEST0033 Niet-nullable verwijzing onderdrukken die niet is geïnitialiseerd. CS8618
MSTEST0047 Onderdrukt de ongebruikte TestContext-parameter van de armaturenmethoden. IDE0060

Hoe onderdrukkingsregels werken

Deze regels produceren geen eigen diagnostische gegevens. In plaats daarvan onderdrukken ze waarschuwingen van andere analyzers die anders ten onrechte zouden worden geactiveerd in testcode.

VSTHRD200: Async-achtervoegsel gebruiken voor asynchrone methoden

Onderdrukt door: MSTEST0027, MSTEST0028

Waarom onderdrukken: Visual Studio Threading Analyzer (VSTHRD200) raadt aan dat asynchrone methoden een Async-achtervoegsel moeten hebben. Testmethoden en testmethodes worden echter door MSTest ontdekt via kenmerken, niet via naamgevingsconventies. Het toevoegen van Async-achtervoegsels aan testmethodenamen (bijvoorbeeld TestLoginAsync) biedt geen waarde en kan testnamen minder leesbaar maken.

Voorbeeld:

[TestMethod]
public async Task TestLogin() // VSTHRD200 would warn without suppression
{
    await LoginAsync();
    // ...
}

CS8618: Niet-nullable reference niet geïnitialiseerd

Onderdrukt door: MSTEST0033

Waarom onderdrukken: Wanneer u null-referentietypen gebruikt, waarschuwt de compiler voor niet-null-eigenschappen die niet in constructors worden geïnitialiseerd. MSTest initialiseert de TestContext eigenschap echter automatisch voordat er testmethoden worden uitgevoerd, zodat de waarschuwing niet van toepassing is.

Voorbeeld:

[TestClass]
public class MyTests
{
    public TestContext TestContext { get; set; } = null!; // CS8618 would warn without suppression
    
    [TestMethod]
    public void TestSomething()
    {
        // TestContext is guaranteed to be non-null here
        TestContext.WriteLine("Test output");
    }
}

IDE0060: ongebruikte parameter verwijderen

Onderdrukt door: MSTEST0047

Waarom onderdrukken?: Met MSTest kunt u de TestContext als parameter ontvangen in fixturemethoden die zijn gemarkeerd met [AssemblyInitialize], [ClassInitialize], [GlobalTestInitialize] of [GlobalTestCleanup]. MSTest vereist deze parameter, zelfs wanneer de hoofdtekst van de methode deze niet gebruikt, dus IDE0060 (die ongebruikte parameters markeert) niet van toepassing is.

Voorbeeld:

[TestClass]
public class MyTests
{
    [ClassInitialize]
    public static void ClassInitialize(TestContext context) // IDE0060 would warn without suppression
    {
        // context isn't used, but MSTest requires the parameter
    }
}

Onderdrukkingsregels uitschakelen

Als u deze waarschuwingen liever ziet, schakelt u de onderdrukkingsregels in uw .editorconfig uit.

[*.cs]
dotnet_diagnostic.MSTEST0027.severity = none
dotnet_diagnostic.MSTEST0028.severity = none
dotnet_diagnostic.MSTEST0033.severity = none
dotnet_diagnostic.MSTEST0047.severity = none