Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
| 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 | Sí |
| Gravedad predeterminada | Advertencia |
| introducido en la versión | 4.0.0 |
| ¿Hay una corrección de código? | Sí |
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.