Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As regras de supressão suprimem automaticamente os diagnósticos de outros analisadores (como Roslyn ou analisadores de threading do Visual Studio) que não se aplicam no contexto dos testes MSTest.
Regras nesta categoria
| ID da regra | Title | Suprime |
|---|---|---|
| MSTEST0027 | Suprime o sufixo assíncrono para métodos de teste. | VSTHRD200 |
| MSTEST0028 | Suprime o sufixo assíncrono para métodos de teste de fixture. | VSTHRD200 |
| MSTEST0033 | Ocultar referência não inicializada e não anulável. | CS8618 |
| MSTEST0047 | Suprima o parâmetro TestContext não utilizado dos métodos de fixture. | IDE0060 |
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: usar o sufixo assíncrono 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");
}
}
IDE0060: remover parâmetro não utilizado
Suprimido por: MSTEST0047
Por que suprimir: o MSTest permite que você receba o TestContext parâmetro como um parâmetro de métodos de fixação marcados com [AssemblyInitialize], [ClassInitialize], ou [GlobalTestInitialize][GlobalTestCleanup]. O MSTest requer esse parâmetro mesmo quando o corpo do método não o usa, portanto, IDE0060 (que sinaliza parâmetros não utilizados) não se aplica.
Exemplo:
[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
}
}
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
dotnet_diagnostic.MSTEST0047.severity = none