Lenguaje

MSTEST0004: Los tipos públicos deben ser clases de prueba

Propiedad Valor
Identificador de la regla MSTEST0004
Título Los tipos públicos deben ser clases de prueba
Categoría Diseño
La corrección es problemática o no problemática Problemático
Habilitado de forma predeterminada No
Gravedad predeterminada Deshabilitado
Introducido en la versión 3.2.0
Hay una corrección de código Sí

Causa

Un tipo público no es una clase de prueba (clase marcada con el atributo [TestClass] ).

Descripción de la regla

Para distinguir las pruebas ejecutables del código de soporte, reserve las clases concretas públicamente visibles para las clases de prueba y mantenga las clases auxiliares internal siempre que sea posible. Esta regla de diseño de inclusión voluntaria le ayuda a detectar la ausencia del atributo [TestClass] o una función auxiliar expuesta públicamente de forma no intencionada.

Las clases auxiliares públicas no son código MSTest no válido. La regla aplica una convención de proyecto, no un requisito de detección y no notifica clases abstractas o estáticas.

Cómo corregir infracciones

Cambie la accesibilidad del tipo para que no sea public.

Cuándo suprimir las advertencias

Suprima el diagnóstico cuando un método auxiliar debe permanecer público para otro ensamblado o un contrato existente. Una clase auxiliar pública deliberadamente no se convierte en una clase de prueba a menos que tenga [TestClass] o un atributo derivado.

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 MSTEST0004
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0004

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

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

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