Compartir vía


Reglas de uso de MSTest

Reglas que admiten el uso adecuado de MSTest.

Identificador Nombre Descripción
MSTEST0002 TestClassShouldBeValidAnalyzer Las clases de prueba, las clases marcadas con el atributo [TestClass], deben respetar el siguiente diseño que MSTest considere válido:
: debe ser public (o internal si se establece el atributo [assembly: DiscoverInternals])
- no deben ser static
- no deben ser genéricos.
MSTEST0003 TestMethodShouldBeValidAnalyzer Los métodos de prueba, los métodos marcados con el atributo [TestMethod] deben respetar el siguiente diseño que MSTest considere válido:
: debe ser public (o internal si se establece el atributo [assembly: DiscoverInternals])
- no deben ser static
- no deben ser genéricos
- no deben ser abstract
- el tipo de valor devuelto debe ser void o Task
- no deben ser async void
- no debe ser un método especial (por ejemplo, finalizador u operador).
MSTEST0005 TestContextShouldBeValidAnalyzer La propiedad TestContext debe seguir el siguiente diseño para que sea válido:
- debe ser una propiedad
: debe ser public (o internal si se establece el atributo [assembly: DiscoverInternals])
- no deben ser static
- no debe ser de solo lectura.
MSTEST0007 UseAttributeOnTestMethodAnalyzer Los siguientes atributos de prueba solo se deben aplicar en los métodos marcados con el atributo TestMethodAttribute:
- [CssIteration]
- [CssProjectStructure]
- [Description]
- [ExpectedException]
- [Owner]
- [Priority]
- [TestProperty]
- [WorkItem]
MSTEST0008 TestInitializeShouldBeValidAnalyzer Los métodos marcados con [TestInitialize] deberían seguir el siguiente diseño para ser válidos:
- debería ser public
- no deben ser static
- no deben ser genéricos
- no deben ser abstract
- no debería tomar ningún parámetro
- el tipo de valor devuelto debería ser void, Task o ValueTask
- no deben ser async void
- no debería ser un método especial (finalizador, operador...).
MSTEST0009 El analizador TestCleanup debería ser válido Los métodos marcados con [TestCleanup] deberían seguir el siguiente diseño para ser válidos:
- debería ser public
- no deben ser static
- no deben ser genéricos
- no deben ser abstract
- no debería tomar ningún parámetro
- el tipo de valor devuelto debería ser void, Task o ValueTask
- no deben ser async void
- no debería ser un método especial (finalizador, operador...).
MSTEST0010 ClassInitializeShouldBeValidAnalyzer Los métodos marcados con [ClassInitialize] deberían seguir el siguiente diseño para ser válidos:
- debería ser public
- debería ser static
- no deben ser genéricos
- debería tomar un parámetro de tipo TestContext
- el tipo de valor devuelto debería ser void, Task o ValueTask
- no deben ser async void
- no debería ser un método especial (finalizador, operador...).
MSTEST0011 ClassCleanupShouldBeValidAnalyzer Los métodos marcados con [ClassCleanup] deberían seguir el siguiente diseño para ser válidos:
- debería ser public
- debería ser static
- no deben ser genéricos
- no debería tomar ningún parámetro
- el tipo de valor devuelto debería ser void, Task o ValueTask
- no deben ser async void
- no debería ser un método especial (finalizador, operador...).
MSTEST0012 AssemblyInitializeShouldBeValidAnalyzer Los métodos marcados con [AssemblyInitialize] deberían seguir el siguiente diseño para ser válidos:
- debería ser public
- debería ser static
- no deben ser genéricos
- debería tomar un parámetro de tipo TestContext
- el tipo de valor devuelto debería ser void, Task o ValueTask
- no deben ser async void
- no debería ser un método especial (finalizador, operador...).
MSTEST0013 AssemblyCleanupShouldBeValidAnalyzer Los métodos marcados con [AssemblyCleanup] deberían seguir el siguiente diseño para ser válidos:
- debería ser public
- debería ser static
- no deben ser genéricos
- no debería tomar ningún parámetro
- el tipo de valor devuelto debería ser void, Task o ValueTask
- no deben ser async void
- no debería ser un método especial (finalizador, operador...).
MSTEST0014 DataRowShouldBeValidAnalyzer Las instancias de [DataRow] deben tener el siguiente diseño para que sean válidas:
- solo deben establecerse en un método de prueba.
- el recuento de argumentos debe coincidir con el recuento de parámetros del método.
- el tipo de argumento debe coincidir con el tipo de argumento de método.
MSTEST0017 AssertionArgsShouldBePassedInCorrectOrder Los argumentos de aserción deben pasarse en el orden correcto
MSTEST0018 AnalizadorDeDatosDinámicosDebeSerVálido Los métodos marcados con [DynamicData] también deben marcarse con [TestMethod] (o un atributo derivado)
MSTEST0023 DoNotNegateBooleanAssertionAnalyzer No niegue las afirmaciones booleanas
MSTEST0024 DoNotStoreStaticTestContextAnalyzer No almacenar TestContext en un miembro estático
MSTEST0026 AssertionArgsShouldAvoidConditionalAccessRuleId Evitar el acceso condicional en aserciones
MSTEST0030 TypeContainingTestMethodShouldBeATestClass El tipo que contiene [TestMethod] debe marcarse con [TestClass]
MSTEST0031 DoNotUseSystemDescriptionAttribute 'System.ComponentModel.DescriptionAttribute' no tiene ningún efecto en el contexto de las pruebas
MSTEST0032 ReviewAlwaysTrueAssertConditionAnalyzer Revise o quite la aserción, ya que se sabe que su condición siempre es verdadera
MSTEST0034 UseClassCleanupBehaviorEndOfClass Usa ClassCleanupBehavior.EndOfClass con el [ClassCleanup]
MSTEST0035 UseDeploymentItemWithTestMethodOrTestClassTitle [DeploymentItem] solo se puede especificar en la clase de prueba o en el método de prueba
MSTEST0037 UseProperAssertMethodsAnalyzer Usar métodos propios Assert
MSTEST0038 AvoidAssertAreSameWithValueTypesAnalyzer No use Assert.AreSame ni Assert.AreNotSame con tipos de valor
MSTEST0039 UseNewerAssertThrowsAnalyzer Usar métodos "Assert.Throws" más recientes
MSTEST0040 AvoidUsingAssertsInAsyncVoidContextAnalyzer No realice aserciones dentro de contextos 'async void'