Compartilhar via


Regras de supressão do MSTest

As regras de supressão suprimem automaticamente o diagnóstico de outros analisadores (como analisadores de threading do Roslyn ou do Visual Studio) que não se aplicam no contexto de testes MSTest.

Regras nesta categoria

ID da regra Title Suprime
MSTEST0027 Suprime o sufixo assíncrono para métodos de teste. VSTHRD200
MSTEST0028 Suprimir o sufixo assíncrono para métodos de fixação de teste. VSTHRD200
MSTEST0033 Ocultar referência não inicializada e não anulável. CS8618

Como funcionam as regras de supressão

Essas regras não produzem seus próprios diagnósticos. Em vez disso, eles suprimem avisos de outros analisadores que, de outra forma, disparariam incorretamente no código de teste.

VSTHRD200: Use sufixo Async para métodos assíncronos

Suprimido por: MSTEST0027, MSTEST0028

Por que suprimir: o analisador de threading do Visual Studio (VSTHRD200) recomenda que os métodos assíncronos tenham um sufixo "Assíncrono". No entanto, métodos de teste e métodos de instalação de teste são descobertos pelo MSTest por meio de atributos, não convenções de nomenclatura. Adicionar sufixos "Async" aos nomes de métodos de teste (por exemplo, TestLoginAsync) não fornece nenhum valor e pode tornar os nomes de teste menos legíveis.

Exemplo:

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

CS8618: referência não anulável não inicializada

Suprimido por: MSTEST0033

Por que suprimir: ao usar tipos de referência anuláveis, o compilador alerta sobre propriedades não anuláveis que não são inicializadas em construtores. No entanto, o MSTest inicializa automaticamente a TestContext propriedade antes que os métodos de teste sejam executados, de modo que o aviso não se aplique.

Exemplo:

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

Desabilitar regras de supressão

Se você preferir ver esses avisos, desabilite as regras de supressão em seu .editorconfig:

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