Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Användningsregler stöder korrekt användning av MSTest-attribut, metoder och mönster. Dessa regler fångar vanliga misstag och ser till att dina tester följer ramverkets krav och konventioner.
Regler i den här kategorin
| Regel-ID | Titel | Severity | Korrigering tillgänglig |
|---|---|---|---|
| MSTEST0002 | Testklassen ska vara giltig. | Varning | Yes |
| MSTEST0003 | Testmetoden ska vara giltig. | Varning → Fel* | Yes |
| MSTEST0005 | TestContext ska vara giltigt. | Varning | Yes |
| MSTEST0007 | Använd attributet på testmetoden. | Varning | Nej |
| MSTEST0008 | TestInitialize ska vara giltigt. | Varning | Yes |
| MSTEST0009 | TestCleanup bör vara giltigt. | Varning | Yes |
| MSTEST0010 | ClassInitialize ska vara giltigt. | Varning | Yes |
| MSTEST0011 | ClassCleanup ska vara giltig. | Varning | Yes |
| MSTEST0012 | AssemblyInitialize ska vara giltigt. | Varning | Yes |
| MSTEST0013 | AssemblyCleanup bör vara giltigt. | Varning | Yes |
| MSTEST0014 | DataRow ska vara giltig. | Varning | Yes |
| MSTEST0017 | Assert-argumenten ska anges i rätt ordning. | Info | Yes |
| MSTEST0018 | DynamicData ska vara giltigt. | Varning | Yes |
| MSTEST0023 | Förneka inte boolesk försäkran. | Info | Yes |
| MSTEST0024 | Lagra inte statisk TestContext. | Varning | Nej |
| MSTEST0026 | Assertionsargs bör undvika villkorsstyrd åtkomst. | Info | Nej |
| MSTEST0030 | Typen som innehåller testmetoden ska vara en testklass. | Varning | Yes |
| MSTEST0031 | Använd inte System.ComponentModel.DescriptionAttribute. | Info | Yes |
| MSTEST0032 | Granska villkoret för always-true-kontroll. | Info | Nej |
| MSTEST0034 | Använd ClassCleanupBehavior.EndOfClass. | Info | Yes |
| MSTEST0035 | Använd DeploymentItem med testmetoden eller testklassen. | Info | Nej |
| MSTEST0037 | Använd rätt assertionsmetoder. | Info | Yes |
| MSTEST0038 | Undvik Assert.AreSame med värdetyper. | Info | Yes |
| MSTEST0039 | Använd nyare Assert.Throws-metoder. | Info | Yes |
| MSTEST0040 | Undvik att använda assertioner i en async void-kontext. | Varning | Nej |
| MSTEST0041 | Använd villkorsbaserade attribut med testklassen. | Varning | Nej |
| MSTEST0042 | Duplicera DataRow. | Varning | Nej |
| MSTEST0043 | Använd återförsöksattribut för testmetoden. | Varning → Fel* | Yes |
| MSTEST0046 | Använd Assert i stället för StringAssert. | Info | Yes |
| MSTEST0048 | TestContext-egenskapsanvändning. | Varning | Nej |
| MSTEST0049 | Flow TestContext CancellationToken. | Info | Yes |
| MSTEST0050 | Den globala testfixturen ska vara giltig. | Varning | Yes |
| MSTEST0051 | Assert.Throws bör innehålla en enda instruktion. | Info | Yes |
| MSTEST0052 | Undvik explicit DynamicDataSourceType. | Info | Yes |
| MSTEST0053 | Undvik parametrar för Assert-format. | Info | Yes |
| MSTEST0054 | Använd egenskapen CancellationToken. | Info | Yes |
| MSTEST0055 | Ignorera inte returvärdet för strängmetoden. | Varning | Nej |
| MSTEST0056 | TestMethodAttribute ska ställa in DisplayName korrekt. | Info | Yes |
| MSTEST0057 | TestMethodAttribute bör sprida källinformation. | Varning | Nej |
| MSTEST0058 | Undvik kontroller i fångstblock. | Info | Nej |
| MSTEST0059 | Använd attributet Parallelize korrekt. | Varning | Nej |
| MSTEST0060 | Dubblett av TestMethodAttribute. | Varning | Yes |
| MSTEST0061 | Använd OSCondition-attribut i stället för kontroll vid körningstid. | Info | Yes |
| MSTEST0062 | Undvik testmetodparametrar för ut/referens. | Varning | Yes |
| MSTEST0063 | Testklassen bör ha en giltig konstruktor. | Varning | Nej |
* Eskalerade till Fel i Recommended och All lägen.
Vanliga scenarier
Validering av teststruktur
Se till att dina testklasser, metoder och armaturer följer MSTest-kraven:
- MSTEST0002: Testa klasslayoutkrav (till exempel offentliga, icke-statiska).
- MSTEST0003: Krav på testmetodlayout (eskalerat till ett fel ⚠).
- MSTEST0030: Metoder med [TestMethod] måste finnas i [TestClass].
- MSTEST0063: Testklasskonstruktorvalidering.
Livscykelmetoder
Verifiera initierings- och rensningsmetoder:
- MSTEST0008: TestInitiera validering.
- MSTEST0009: Testcleanup-validering.
- MSTEST0010: ClassInitialize-validering.
- MSTEST0011: ClassCleanup-validering.
- MSTEST0012: AssemblyInitialize-validering.
- MSTEST0013: Validering av AssemblyCleanup.
- MSTEST0034: Ange ClassCleanupBehavior.EndOfClass.
- MSTEST0050: Global validering av testfixtur.
Datadriven testning
Kontrollera att dataattribut används korrekt:
- MSTEST0007: Dataattribut måste finnas på testmetoder.
- MSTEST0014: DataRow-validering.
- MSTEST0018: DynamicData-validering.
- MSTEST0042: Identifiera duplicerade DataRows.
- MSTEST0052: Använd AutoDetect för DynamicDataSourceType.
- MSTEST0062: Undvik out/ref-parametrar.
Skriva bättre försäkran
Regler för korrekt och effektiv användning av påståenden:
- MSTEST0017: Ange förväntat/faktiskt värde i rätt ordning.
- MSTEST0023: Förneka inte villkor (använd Assert.IsFalse direkt).
- MSTEST0026: Undvik null-villkorsstyrda operatorer i påståenden.
- MSTEST0032: Granska villkor som alltid är sanna.
- MSTEST0037: Använd den lämpligaste assertmetoden.
- MSTEST0038: Använd inte AreSame med värdetyper.
- MSTEST0039: Använd Assert.ThrowsExactly (nyare API).
- MSTEST0046: Föredrar Assert framför StringAssert.
- MSTEST0051: Assert.Throws bör testa en enda instruktion.
- MSTEST0053: Använd stränginterpolation i stället för formatparametrar.
- MSTEST0058: Placera inte försäkran i fångstblock.
TestContext-användning
Korrekt användning av TestContext-objektet:
- MSTEST0005: Validering av egenskapen TestContext.
- MSTEST0024: Lagra inte TestContext i statiska fält.
- MSTEST0048: Begränsad åtkomst till egenskaper i lösningar.
- MSTEST0049: Flödesavbokningstoken från TestContext.
- MSTEST0054: Använd egenskapen TestContext.CancellationToken.
Asynkrona mönster
Regler för asynkron testkod:
- MSTEST0040: Undvik assert-satser i asynkrona void-metoder.
Testkonfiguration
- MSTEST0031: Använd rätt attribut (inte System.ComponentModel.Description).
- MSTEST0035: DeploymentItem-användning.
- MSTEST0041: Villkorsattribut måste finnas i testklasser.
- MSTEST0043: Återförsöksattribut måste finnas på testmetoder (️⚠ eskalerat till Fel).
- MSTEST0055: Ignorera inte strängmetodens returvärden.
- MSTEST0056: Ange DisplayName korrekt på TestMethodAttribute.
- MSTEST0057: Sprida källinformation i anpassad TestMethodAttribute.
- MSTEST0059: Använd inte både Parallelize och DoNotParallelize.
- MSTEST0060: Undvik dubbletter av TestMethodAttribute.
- MSTEST0061: Använd OSCondition-attributet för plattformskontroller.