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 | Value |
|---|---|
| Identificador de la regla | MSTEST0082 |
| Title | Una clase de prueba hereda un ciclo de vida o un método de prueba de otra versión de MSTest |
| Categoría | Usage |
| La corrección es problemática o no problemática | Non-breaking |
| Habilitado de forma predeterminada | Sí |
| Gravedad predeterminada | Warning |
| introducido en la versión | 4.4.0 (versión preliminar) |
| ¿Hay una corrección de código? | No |
Importante
Este analizador está planeado para MSTest 4.4 y solo está disponible en compilaciones en versión preliminar hasta que se publique MSTest 4.4.0.
Causa
Una clase de prueba detectable hereda un método de prueba público o un método de ciclo de vida de un ensamblado que hace referencia a una versión principal diferente de MSTest.
Descripción de la regla
MSTest hace coincidir los atributos de prueba y de ciclo de vida mediante la identidad exacta del tipo en tiempo de ejecución. MSTest v3 define estos atributos en Microsoft.VisualStudio.TestPlatform.TestFramework, mientras que MSTest v4 los define en MSTest.TestFramework. Si una biblioteca base y un proyecto de prueba derivado usan versiones principales diferentes, el adaptador omite silenciosamente los atributos heredados del otro ensamblado de marco. Como resultado, las pruebas heredadas no se detectan y los métodos de inicialización o limpieza heredados no se ejecutan.
Por ejemplo, una biblioteca de pruebas compartida compilada con MSTest v3 podría declarar:
public abstract class SharedTests
{
[TestMethod] public void InheritedTest() { }
}
Un proyecto de MSTest v4 que deriva de la clase base desencadena el diagnóstico:
[TestClass]
public sealed class ProductTests : SharedTests { } // Violation
El analizador comprueba los métodos de prueba heredados, los métodos de inicialización y limpieza de pruebas, así como los métodos de inicialización y limpieza de clases que están configurados para ejecutarse para las clases derivadas.
Cómo corregir infracciones
Haga referencia a la misma versión principal de MSTest desde la biblioteca base y el proyecto de prueba derivado. Vuelva a compilar el ensamblado que declara la clase base y, para un atributo personalizado derivado de un atributo MSTest, vuelva a compilar el ensamblado que declara el atributo personalizado.
Cuándo suprimir las advertencias
No suprima las advertencias de esta regla. Una infracción significa que MSTest omite silenciosamente las pruebas heredadas o los métodos de ciclo de vida.
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 MSTEST0082
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0082
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.MSTEST0082.severity = none
Para obtener más información, consulte Cómo suprimir advertencias de análisis de código.