Dela via


MSTest-undertryckningsregler

Undertryckningsregler förhindrar automatiskt diagnostik från andra analysverktyg (till exempel Roslyn- eller Visual Studio-trådanalysverktyg) som inte tillämpas i samband med MSTest-tester.

Regler i den här kategorin

Regel-ID Titel Undertrycker
MSTEST0027 Utelämna asynkront suffix för testmetoder. VSTHRD200
MSTEST0028 Utelämna asynkront suffix för testfixturmetoder. VSTHRD200
MSTEST0033 Undertryck icke-nullbar referens som inte initialiserats. CS8618

Så här fungerar regler för undertryckning

Dessa regler producerar inte sin egen diagnostik. I stället undertrycker de varningar från andra analysverktyg som annars skulle utlösas felaktigt i testkoden.

VSTHRD200: Använda Async-suffix för asynkrona metoder

Undertryckt av: MSTEST0027, MSTEST0028

Varför ignorera: Visual Studio-trådanalysator (VSTHRD200) rekommenderar att asynkrona metoder ska ha ett suffix för "Async". Testmetoder och testfixturmetoder identifieras dock av MSTest via attribut, inte namngivningskonventioner. Att lägga till "Async"-suffix för att testa metodnamn (till exempel TestLoginAsync) ger inget värde och kan göra testnamnen mindre läsbara.

Exempel:

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

CS8618: Icke-nullbar referens initierades inte

Undertryckt av: MSTEST0033

Varför ignorera: När du använder nullbara referenstyper varnar kompilatorn om icke-nullbara egenskaper som inte initieras i konstruktorer. MSTest initierar TestContext dock egenskapen automatiskt innan några testmetoder körs, så varningen gäller inte.

Exempel:

[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");
    }
}

Inaktivera regler för undertryckning

Om du föredrar att se dessa varningar, inaktivera undertryckningsreglerna i .editorconfig.

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