Compartir vía


Reglas de eliminación de alertas de MSTest

Las reglas de supresión suprimen automáticamente los diagnósticos de otros analizadores (como Roslyn o analizadores de subprocesos de Visual Studio) que no se aplican en el contexto de las pruebas de MSTest.

Reglas de esta categoría

Identificador de la regla Title Suprime
MSTEST0027 Suprima el sufijo asincrónico para los métodos de prueba. VSTHRD200
MSTEST0028 Suprima el sufijo async para los métodos de configuración de prueba. VSTHRD200
MSTEST0033 Suprima una referencia que no acepta valores NULL no inicializada. CS8618

Funcionamiento de las reglas de supresión

Estas reglas no generan sus propios diagnósticos. En su lugar, suprimen las advertencias de otros analizadores que, de lo contrario, se desencadenarían incorrectamente en el código de prueba.

VSTHRD200: Usar el sufijo Async para métodos async

Suprimido por: MSTEST0027, MSTEST0028

Por qué suprimir: el analizador de subprocesos de Visual Studio (VSTHRD200) recomienda que los métodos asincrónicos tengan un sufijo "asincrónico". Sin embargo, MSTest detecta métodos de prueba y métodos de accesorio de prueba a través de atributos, no convenciones de nomenclatura. Agregar sufijos "asincrónicos" para probar nombres de método (por ejemplo, TestLoginAsync) no proporciona ningún valor y puede hacer que los nombres de prueba sean menos legibles.

Ejemplo:

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

CS8618: referencia no anulable no inicializada

Suprimido por: MSTEST0033

Por qué suprimir: al usar tipos de referencia anulables, el compilador advierte sobre las propiedades no anulables que no se inicializan en los constructores. Sin embargo, MSTest inicializa automáticamente la TestContext propiedad antes de que se ejecuten los métodos de prueba, por lo que la advertencia no se aplica.

Ejemplo:

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

Deshabilitar reglas de supresión

Si prefiere ver estas advertencias, deshabilite las reglas de supresión en .editorconfig:

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