Condividi tramite


Regole di utilizzo di MSTest

Regole che supportano l'utilizzo appropriato di MSTest.

Identificatore Nome Descrizione
MSTEST0002 TestClassShouldBeValidAnalyzer Le classi di test, le classi contrassegnate con l'attributo [TestClass], devono rispettare il layout seguente per essere considerato valido da MSTest:
- deve essere public (o internal se è impostato [assembly: DiscoverInternals] attributo)
- non deve essere static
- non deve essere generico.
MSTEST0003 MetodoDiTestDovrebbeEssereValidoAnalizzatore I metodi di test, contrassegnati con l'attributo [TestMethod], devono rispettare il layout seguente per essere considerato valido da MSTest:
- deve essere public (o internal se è impostato [assembly: DiscoverInternals] attributo)
- non deve essere static
- non deve essere generico
- non deve essere abstract
- Il tipo restituito deve essere void o Task
- non deve essere async void
- non deve essere un metodo speciale (ad esempio, finalizzatore o operatore).
MSTEST0005 AnalizzatoreDiContestoTestDovrebbeEssereValido La proprietà TestContext deve seguire il layout seguente per essere valido:
- deve essere una proprietà
- deve essere public (o internal se è impostato [assembly: DiscoverInternals] attributo)
- non deve essere static
- non dovrebbe essere di sola lettura.
MSTEST0007 UseAttributeOnTestMethodAnalyzer (UtilizzaAttributoSuMetodoDiTestAnalizzatore) Gli attributi di test seguenti devono essere applicati solo ai metodi contrassegnati con l'attributo TestMethodAttribute:
- [CssIteration]
- [CssProjectStructure]
- [Description]
- [ExpectedException]
- [Owner]
- [Priority]
- [TestProperty]
- [WorkItem]
MSTEST0008 InizializzazioneTestDovrebbeEssereUnAnalizzatoreValido I metodi contrassegnati con [TestInitialize] devono seguire il layout seguente per essere validi:
- dovrebbe essere public
- non deve essere static
- non deve essere generico
- non deve essere abstract
- non deve accettare alcun parametro
: il tipo restituito deve essere void, Task o ValueTask
- non deve essere async void
- non deve essere un metodo speciale (finalizzatore, operatore...).
MSTEST0009 TestCleanupShouldBeValidAnalyzer I metodi contrassegnati con [TestCleanup] devono seguire il layout seguente per essere validi:
- dovrebbe essere public
- non deve essere static
- non deve essere generico
- non deve essere abstract
- non deve accettare alcun parametro
: il tipo restituito deve essere void, Task o ValueTask
- non deve essere async void
- non deve essere un metodo speciale (finalizzatore, operatore...).
MSTEST0010 ClassInitializeShouldBeValidAnalyzer I metodi contrassegnati con [ClassInitialize] devono seguire il layout seguente per essere validi:
- dovrebbe essere public
- dovrebbe essere static
- non deve essere generico
- deve accettare un parametro di tipo TestContext
: il tipo restituito deve essere void, Task o ValueTask
- non deve essere async void
- non deve essere un metodo speciale (finalizzatore, operatore...).
MSTEST0011 ClassCleanupShouldBeValidAnalyzer I metodi contrassegnati con [ClassCleanup] devono seguire il layout seguente per essere validi:
- dovrebbe essere public
- dovrebbe essere static
- non deve essere generico
- non deve accettare alcun parametro
: il tipo restituito deve essere void, Task o ValueTask
- non deve essere async void
- non deve essere un metodo speciale (finalizzatore, operatore...).
MSTEST0012 AssemblyInitializeShouldBeValidAnalyzer I metodi contrassegnati con [AssemblyInitialize] devono seguire il layout seguente per essere validi:
- dovrebbe essere public
- dovrebbe essere static
- non deve essere generico
- deve accettare un parametro di tipo TestContext
: il tipo restituito deve essere void, Task o ValueTask
- non deve essere async void
- non deve essere un metodo speciale (finalizzatore, operatore...).
MSTEST0013 AssemblyCleanupShouldBeValidAnalyzer I metodi contrassegnati con [AssemblyCleanup] devono seguire il layout seguente per essere validi:
- dovrebbe essere public
- dovrebbe essere static
- non deve essere generico
- non deve accettare alcun parametro
: il tipo restituito deve essere void, Task o ValueTask
- non deve essere async void
- non deve essere un metodo speciale (finalizzatore, operatore...).
MSTEST0014 AnalizzatoreDiRigaDatiValido Le istanze [DataRow] devono avere il layout seguente per essere valide.
- devono essere impostati solo su un metodo di test
- Il numero di argomenti deve corrispondere al numero dei parametri del metodo
- Il tipo di argomento deve corrispondere al tipo di argomento del metodo
MSTEST0017 AssertionArgsShouldBePassedInCorrectOrder Gli argomenti di asserzione devono essere passati nell'ordine corretto
MSTEST0018 DynamicDataShouldBeValidAnalyzer I metodi contrassegnati con [DynamicData] devono essere contrassegnati anche con [TestMethod] (o un attributo derivato)
MSTEST0023 DoNotNegateBooleanAssertionAnalyzer Non negare asserzioni booleane
MSTEST0024 DoNotStoreStaticTestContextAnalyzer Non archiviare TestContext in un membro statico
MSTEST0026 AssertionArgsShouldAvoidConditionalAccessRuleId Evitare l'accesso condizionale nelle asserzioni
MSTEST0030 La classe che contiene il metodo di test dovrebbe essere una classe di test Il tipo contenente [TestMethod] deve essere contrassegnato con [TestClass]
MSTEST0031 DoNotUseSystemDescriptionAttribute (Non utilizzare l'attributo di descrizione del sistema) 'System.ComponentModel.DescriptionAttribute' non ha alcun effetto nel contesto dei test
MSTEST0032 AnalizzatoreCondizioneAsserzioneSempreVera Esaminare o rimuovere l'asserzione perché la condizione è nota come sempre vera
MSTEST0034 UseClassCleanupBehaviorEndOfClass Utilizzare ClassCleanupBehavior.EndOfClass con il [ClassCleanup]
MSTEST0035 UsaDeploymentItemConMetodoDiTestOTitoloClasseDiTest [DeploymentItem] può essere specificato solo per la classe di test o il metodo di test
MSTEST0037 UseProperAssertMethodsAnalyzer Usare metodi di Assert appropriati
MSTEST0038 AvoidAssertAreSameWithValueTypesAnalyzer (Evitare l'uso di Assert.AreSame con tipi valore) Non usare Assert.AreSame o Assert.AreNotSame con tipi di valore