Pravidla pro potlačení MSTest

Pravidla potlačení automaticky potlačí diagnostiku z jiných analyzátorů (jako jsou analyzátory vláken Roslyn nebo Visual Studio), které se nevztahují v kontextu testů MSTest.

Pravidla v této kategorii

ID pravidla Title Potlačí
MSTEST0027 Potlačení asynchronní přípony u testovacích metod. VSTHRD200
MSTEST0028 Potlačit asynchronní příponu pro metody zkoušky. VSTHRD200
MSTEST0033 Potlačit nenulový odkaz, který nelze inicializovat. CS8618
MSTEST0047 Potlačí nepoužívaný parametr TestContext v metodách fixtury. IDE0060

Jak fungují pravidla potlačení

Tato pravidla nevytvářejí vlastní diagnostiku. Místo toho potlačí upozornění z jiných analyzátorů, které by jinak v testovacím kódu aktivovaly nesprávně.

VSTHRD200: Použijte příponu ".Async" pro asynchronní metody

Potlačeno: MSTEST0027, MSTEST0028

Proč potlačit: Analyzátor vláken sady Visual Studio (VSTHRD200) doporučuje, aby asynchronní metody měly mít příponu Async. Metody testů a metody testovacího zařízení jsou však zjištěny pomocí msTest prostřednictvím atributů, nikoli konvencí pojmenování. Přidání přípon "Async" do názvů testovacích metod (například TestLoginAsync) neposkytuje žádnou hodnotu a může ztížit čtení názvů testů.

Příklad :

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

CS8618: Nenulový odkaz není inicializován

Potlačeno: MSTEST0033

Proč potlačit: Při použití referenčních typů povolujících hodnotu null kompilátor varuje před vlastnostmi, které nemají povolenou hodnotu null a nejsou inicializovány v konstruktorech. MsTest však automaticky inicializuje TestContext vlastnost před spuštěním testovacích metod, takže upozornění se nepoužije.

Příklad :

[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: Odebrání nepoužívaného parametru

Potlačeno pomocí: MSTEST0047

Proč potlačit: MSTest umožňuje přijmout TestContext jako parametr metod zařízení označených [AssemblyInitialize], [ClassInitialize], [GlobalTestInitialize]nebo [GlobalTestCleanup]. MSTest vyžaduje tento parametr, i když ho tělo metody nepoužívá, takže IDE0060 (který označuje nepoužívané parametry) se nepoužije.

Příklad :

[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
    }
}

Deaktivovat pravidla potlačení

Pokud si přejete vidět tato upozornění, vypněte pravidla potlačení ve svém .editorconfig:

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