Udostępnij za pośrednictwem


Reguły użycia MSTest

Reguły, które obsługują prawidłowe użycie biblioteki MSTest.

Identyfikator Nazwa Opis
MSTEST0002 AnalizatorKlasyTestowejPowinienByćPrawidłowy Klasy testowe, klasy oznaczone atrybutem [TestClass], powinny uwzględniać następujący układ, który ma być uznawany za prawidłowy przez MSTest:
— powinien być public (lub internal, jeśli [assembly: DiscoverInternals] atrybut jest ustawiony)
- nie powinno być static
- nie powinien być ogólny.
MSTEST0003 MetodaTestowaPowinnaByćPoprawnymAnalizatorem Metody testowe, metody oznaczone atrybutem [TestMethod], powinny uwzględniać następujący układ, który ma być uznawany za prawidłowy przez msTest:
— powinien być public (lub internal, jeśli [assembly: DiscoverInternals] atrybut jest ustawiony)
- nie powinno być static
- nie powinien być ogólny
- nie powinno być abstract
- zwracany typ powinien być void lub Task
- nie powinno być async void
- nie powinna być szczególną metodą (na przykład finalizator lub operator).
MSTEST0005 TestContextShouldBeValidAnalyzer Właściwość TestContext powinna być zgodna z następującym układem, aby była prawidłowa.
- powinna być własnością
— powinien być public (lub internal, jeśli [assembly: DiscoverInternals] atrybut jest ustawiony)
- nie powinno być static
- nie należy go odczytywać w sposób czytelny.
MSTEST0007 UseAttributeOnTestMethodAnalyzer Następujące atrybuty testowe powinny być stosowane tylko dla metod oznaczonych atrybutem TestMethodAttribute:
- [CssIteration]
- [CssProjectStructure]
- [Description]
- [ExpectedException]
- [Owner]
- [Priority]
- [TestProperty]
- [WorkItem]
MSTEST0008 TestInitializeShouldBeValidAnalyzer Metody oznaczone [TestInitialize] powinny stosować następujący układ, aby były ważne.
- powinna być public
- nie powinno być static
- nie powinien być ogólny
- nie powinno być abstract
- nie powinien przyjmować żadnego parametru
— zwracany typ powinien być void, Task lub ValueTask
- nie powinno być async void
- nie powinna być specjalną metodą (finalizer, operator...).
MSTEST0009 TestCleanupShouldBeValidAnalyzer Metody oznaczone [TestCleanup] powinny stosować następujący układ, aby były ważne.
- powinna być public
- nie powinno być static
- nie powinien być ogólny
- nie powinno być abstract
- nie powinien przyjmować żadnego parametru
— zwracany typ powinien być void, Task lub ValueTask
- nie powinno być async void
- nie powinna być specjalną metodą (finalizer, operator...).
MSTEST0010 ClassInitializeShouldBeValidAnalyzer Metody oznaczone [ClassInitialize] powinny stosować następujący układ, aby były ważne.
- powinna być public
- powinna być static
- nie powinien być ogólny
- powinien przyjmować jeden parametr typu TestContext
— zwracany typ powinien być void, Task lub ValueTask
- nie powinno być async void
- nie powinna być specjalną metodą (finalizer, operator...).
MSTEST0011 ClassCleanupShouldBeValidAnalyzer Metody oznaczone [ClassCleanup] powinny stosować następujący układ, aby były ważne.
- powinna być public
- powinna być static
- nie powinien być ogólny
- nie powinien przyjmować żadnego parametru
— zwracany typ powinien być void, Task lub ValueTask
- nie powinno być async void
- nie powinna być specjalną metodą (finalizer, operator...).
MSTEST0012 AnalizatorZainicjowaniaZgromadzeniaPowinnaByćWażna Metody oznaczone [AssemblyInitialize] powinny stosować następujący układ, aby były ważne.
- powinna być public
- powinna być static
- nie powinien być ogólny
- powinien przyjmować jeden parametr typu TestContext
— zwracany typ powinien być void, Task lub ValueTask
- nie powinno być async void
- nie powinna być specjalną metodą (finalizer, operator...).
MSTEST0013 AssemblyCleanupShouldBeValidAnalyzer Metody oznaczone [AssemblyCleanup] powinny stosować następujący układ, aby były ważne.
- powinna być public
- powinna być static
- nie powinien być ogólny
- nie powinien przyjmować żadnego parametru
— zwracany typ powinien być void, Task lub ValueTask
- nie powinno być async void
- nie powinna być specjalną metodą (finalizer, operator...).
MSTEST0014 (if localization is deemed necessary): ValidacjaWierszaPowinnaByćPrawidłowaAnalyzer [DataRow] wystąpienia powinny mieć następujący układ, aby był prawidłowy:
— należy je ustawić tylko w metodzie testowej
- liczba argumentów powinna odpowiadać liczbie parametrów metody
- typ argumentu powinien być zgodny z typem argumentu metody
MSTEST0017 ArgumentyDoAssercjiPowinnyByćPrzekazywaneWeWłaściwejKolejności Argumenty asercji powinny być przekazywane w prawidłowej kolejności
MSTEST0018 AnalizatorDanychDynamicznychPowinnyByćPoprawne Metody oznaczone [DynamicData] powinny być również oznaczone [TestMethod] (lub atrybut pochodny)
MSTEST0023 DoNotNegateBooleanAssertionAnalyzer (analyzer nieodwracania asercji logicznej) Nie neguj asercji boolowskich
MSTEST0024 DoNotStoreStaticTestContextAnalyzer Nie przechowuj obiektu TestContext w zmiennej statycznej
MSTEST0026 AssertionArgsShouldAvoidConditionalAccessRuleId Unikaj dostępu warunkowego w asercjach
MSTEST0030 TypZawierającyMetodęTestującąPowinienByćKlasąTestową Typ zawierający [TestMethod] powinien być oznaczony [TestClass]
MSTEST0031 DoNotUseSystemDescriptionAttribute (Nie używaj atrybutu opisu systemu) Element "System.ComponentModel.DescriptionAttribute" nie ma wpływu w kontekście testów
MSTEST0032 AnalizatorWarunkuZawszePrawdziwegoWAssert Przejrzyj lub usuń asercję, ponieważ jej warunek jest znany jako zawsze prawdziwy
MSTEST0034 UseClassCleanupBehaviorEndOfClass Użyj ClassCleanupBehavior.EndOfClass z [ClassCleanup]
MSTEST0035 UseDeploymentItemWithTestMethodOrTestClassTitle [DeploymentItem] można określić tylko w klasie testowej lub metodzie testowej
MSTEST0037 UseProperAssertMethodsAnalyzer Użyj odpowiednich metod Assert
MSTEST0038 AvoidAssertAreSameWithValueTypesAnalyzer Nie używaj Assert.AreSame ani Assert.AreNotSame z typami wartości
MSTEST0039 UseNewerAssertThrowsAnalyzer Użyj nowszych metod "Assert.Throws"
MSTEST0040 Unikaj używania instrukcji asercji w kontekście AsyncVoid w narzędziu Analyzer Nie używaj asercji wewnątrz kontekstów 'async void'