Compartir por


MSTEST0057: Propagación de la información de origen en atributos de método de prueba personalizados

Propiedad Importancia
Identificador de la regla MSTEST0057
Título Propagación de la información de origen en atributos de método de prueba personalizados
Categoría Usage
La corrección es disruptiva o no disruptiva Non-breaking
Habilitado de forma predeterminada
Gravedad predeterminada Advertencia
introducido en la versión 4.0.0
¿Hay una corrección de código?

Causa

Una clase personalizada TestMethodAttribute no propaga la información del autor de la llamada al constructor de clase base.

Descripción de la regla

Al crear atributos de método de prueba personalizados que derivan de TestMethodAttribute, debe propagar la información de origen utilizando atributos de información del llamador. Esto permite a MSTest realizar un seguimiento correcto del archivo de origen y el número de línea de los métodos de prueba, mejorar los diagnósticos, los informes de resultados de pruebas y el comportamiento del Explorador de pruebas.

public class MyTestMethodAttribute : TestMethodAttribute
{
    public MyTestMethodAttribute() // Violation
        : base()
    {
    }
}

Cómo corregir infracciones

Agregue CallerFilePath parámetros y CallerLineNumber al constructor y páselos a la clase base.

using System.Runtime.CompilerServices;

public class MyTestMethodAttribute : TestMethodAttribute
{
    public MyTestMethodAttribute(
        [CallerFilePath] string callerFilePath = "", 
        [CallerLineNumber] int callerLineNumber = -1)
        : base(callerFilePath, callerLineNumber)
    {
    }
}

Cuándo suprimir las advertencias

No suprima las advertencias de esta regla. La propagación de la información de origen es esencial para los informes y diagnósticos de pruebas adecuados.

Supresión de una advertencia

Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.

#pragma warning disable MSTEST0057
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0057

Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad a none en el archivo de configuración.

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0057.severity = none

Para obtener más información, consulte Cómo suprimir advertencias de análisis de código.