Dela via


MSTest-användningsregler

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:

Datadriven testning

Kontrollera att dataattribut används korrekt:

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.