Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Las reglas de uso admiten el uso adecuado de los atributos, métodos y patrones de MSTest. Estas reglas detectan errores comunes y garantizan que las pruebas siguen los requisitos y convenciones del marco.
Reglas de esta categoría
| Identificador de la regla | Title | Severity | Solución disponible |
|---|---|---|---|
| MSTEST0002 | La clase de prueba debe ser válida. | Advertencia | Sí |
| MSTEST0003 | El método de prueba debe ser válido. | Advertencia → Error | Sí |
| MSTEST0005 | TestContext debe ser válido. | Advertencia | Sí |
| MSTEST0007 | Use el atributo en el método de prueba. | Advertencia | No |
| MSTEST0008 | TestInitialize debe ser válido. | Advertencia | Sí |
| MSTEST0009 | TestCleanup debe ser válido. | Advertencia | Sí |
| MSTEST0010 | ClassInitialize debe ser válido. | Advertencia | Sí |
| MSTEST0011 | ClassCleanup debe ser válido. | Advertencia | Sí |
| MSTEST0012 | AssemblyInitialize debe ser válido. | Advertencia | Sí |
| MSTEST0013 | AssemblyCleanup debe ser válido. | Advertencia | Sí |
| MSTEST0014 | DataRow debe ser válido. | Advertencia | Sí |
| MSTEST0017 | Los argumentos de aserción deben pasarse en orden correcto. | Información | Sí |
| MSTEST0018 | DynamicData debe ser válido. | Advertencia | Sí |
| MSTEST0023 | No niegues la aserción booleana. | Información | Sí |
| MSTEST0024 | No almacene static TestContext. | Advertencia | No |
| MSTEST0026 | Los argumentos de aserción deben evitar el acceso condicional. | Información | No |
| MSTEST0030 | El tipo que contiene el método de prueba debe ser una clase de prueba. | Advertencia | Sí |
| MSTEST0031 | No utilice System.ComponentModel.DescriptionAttribute. | Información | Sí |
| MSTEST0032 | Revise siempre la condición de aserción verdadera. | Información | No |
| MSTEST0034 | Utilice ClassCleanupBehavior.EndOfClass. | Información | Sí |
| MSTEST0035 | Utilice DeploymentItem con un método de prueba o una clase de prueba. | Información | No |
| MSTEST0037 | Utilice métodos de aserción adecuados. | Información | Sí |
| MSTEST0038 | Evite el uso de Assert.AreSame con tipos de valor. | Información | Sí |
| MSTEST0039 | Use los métodos Assert.Throws más recientes. | Información | Sí |
| MSTEST0040 | Evite usar aserciones en contexto de void asincrónico. | Advertencia | No |
| MSTEST0041 | Use atributos basados en condiciones con la clase de prueba. | Advertencia | No |
| MSTEST0042 | Fila de datos duplicada. | Advertencia | No |
| MSTEST0043 | Use el atributo retry en el método de prueba. | Advertencia → Error | Sí |
| MSTEST0046 | Use Assert en lugar de StringAssert. | Información | Sí |
| MSTEST0048 | Uso de propiedades TestContext. | Advertencia | No |
| MSTEST0049 | Flow TestContext CancellationToken. | Información | Sí |
| MSTEST0050 | El dispositivo de prueba global debe ser válido. | Advertencia | Sí |
| MSTEST0051 | Assert.Throws debe contener una sola instrucción. | Información | Sí |
| MSTEST0052 | Evite el DynamicDataSourceType explícito. | Información | Sí |
| MSTEST0053 | Evite los parámetros de formato Assert. | Información | Sí |
| MSTEST0054 | Utilice la propiedad CancellationToken. | Información | Sí |
| MSTEST0055 | No omita el valor devuelto del método de cadena. | Advertencia | No |
| MSTEST0056 | TestMethodAttribute debe establecer DisplayName correctamente. | Información | Sí |
| MSTEST0057 | TestMethodAttribute debe propagar la información de origen. | Advertencia | No |
| MSTEST0058 | Evite afirmaciones en bloques de captura. | Información | No |
| MSTEST0059 | Use el atributo Parallelize correctamente. | Advertencia | No |
| MSTEST0060 | TestMethodAttribute duplicado. | Advertencia | Sí |
| MSTEST0061 | Use el atributo OSCondition en lugar de la comprobación en tiempo de ejecución. | Información | Sí |
| MSTEST0062 | Evite los parámetros de método de prueba de tipo out/ref. | Advertencia | Sí |
| MSTEST0063 | La clase de prueba debe tener un constructor válido. | Advertencia | No |
* Escalado a Error en los modos Recommended y All.
Escenarios frecuentes
Validación de la estructura de prueba
Asegúrese de que las clases de prueba, los métodos y los accesorios siguen los requisitos de MSTest:
- MSTEST0002: probar los requisitos de diseño de clase (por ejemplo, públicos y no estáticos).
- MSTEST0003: requisitos de diseño del método de prueba (️⚠ elevado a error).
- MSTEST0030: los métodos con [TestMethod] deben estar en un [TestClass].
- MSTEST0063: validación del constructor de clase de prueba.
Métodos de ciclo de vida
Valide los métodos de inicialización y limpieza:
- MSTEST0008: Validación de TestInitialize.
- MSTEST0009: Validación de TestCleanup.
- MSTEST0010: Validación de ClassInitialize.
- MSTEST0011: Validación ClassCleanup.
- MSTEST0012: Validación de AssemblyInitialize.
- MSTEST0013: Validación de limpieza de ensamblado.
- MSTEST0034: Establezca ClassCleanupBehavior.EndOfClass.
- MSTEST0050: validación global de configuración de prueba.
Pruebas controladas por datos
Asegúrese de que los atributos de datos se usan correctamente:
- MSTEST0007: los atributos de datos deben estar en métodos de prueba.
- MSTEST0014: validación de DataRow.
- MSTEST0018: validación de DynamicData.
- MSTEST0042: detectar filas de datos duplicadas.
- MSTEST0052: use AutoDetect para DynamicDataSourceType.
- MSTEST0062: evite parámetros de salida/referencia.
Escritura de mejores aserciones
Reglas para el uso correcto y eficaz de aserciones:
- MSTEST0017: pase el valor esperado o real en orden correcto.
- MSTEST0023: No niegues las condiciones (utiliza Assert.IsFalse directamente).
- MSTEST0026: evite los operadores condicionales NULL en las aserciones.
- MSTEST0032: Revisar las condiciones siempre verdaderas.
- MSTEST0037: use el método de aserción más adecuado.
- MSTEST0038: no use AreSame con tipos de valor.
- MSTEST0039: use Assert.ThrowsExactly (API más reciente).
- MSTEST0046: Se recomienda usar Assert en lugar de StringAssert.
- MSTEST0051: Assert.Throws debe probar una sola instrucción.
- MSTEST0053: use la interpolación de cadenas en lugar de los parámetros de formato.
- MSTEST0058: no coloque aserciones en bloques catch.
Uso de TestContext
Uso adecuado del objeto TestContext:
- MSTEST0005: validación de propiedades TestContext.
- MSTEST0024: no almacene TestContext en campos estáticos.
- MSTEST0048: acceso restringido a las propiedades en entornos de prueba.
- MSTEST0049: tokens de cancelación de flujo de TestContext.
- MSTEST0054: use la propiedad TestContext.CancellationToken.
Patrones asincrónicos
Reglas para el código de prueba asincrónico:
- MSTEST0040: Evite las aserciones en métodos void asincrónicos.
Configuración de prueba
- MSTEST0031: Use los atributos adecuados (no System.ComponentModel.Description).
- MSTEST0035: uso de DeploymentItem.
- MSTEST0041: los atributos de condición deben estar en clases de prueba.
- MSTEST0043: los atributos de reintento deben estar en métodos de prueba (️⚠ escalado a Error).
- MSTEST0055: no omita los valores devueltos del método de cadena.
- MSTEST0056: establezca DisplayName correctamente en TestMethodAttribute.
- MSTEST0057: Propaga la información de origen en un TestMethodAttribute personalizado.
- MSTEST0059: no use Parallelize ni DoNotParallelize.
- MSTEST0060: evite el duplicado TestMethodAttribute.
- MSTEST0061: use el atributo OSCondition para las comprobaciones de plataforma.