Delen via


MSTest-gebruiksregels

Gebruiksregels ondersteunen het juiste gebruik van MSTest-kenmerken, -methoden en -patronen. Deze regels vangen veelvoorkomende fouten op en zorgen ervoor dat uw tests voldoen aan de vereisten en conventies van het framework.

Regels in deze categorie

Regel-id Title Severity Oplossing beschikbaar
MSTEST0002 Testklasse moet geldig zijn. Waarschuwing Yes
MSTEST0003 De testmethode moet geldig zijn. Waarschuwing → fout* Yes
MSTEST0005 TestContext moet geldig zijn. Waarschuwing Yes
MSTEST0007 Gebruik het kenmerk voor de testmethode. Waarschuwing Nee.
MSTEST0008 TestInitialize moet geldig zijn. Waarschuwing Yes
MSTEST0009 TestCleanup moet geldig zijn. Waarschuwing Yes
MSTEST0010 ClassInitialize moet geldig zijn. Waarschuwing Yes
MSTEST0011 ClassCleanup moet geldig zijn. Waarschuwing Yes
MSTEST0012 AssemblyInitialize moet geldig zijn. Waarschuwing Yes
MSTEST0013 AssemblyCleanup moet geldig zijn. Waarschuwing Yes
MSTEST0014 DataRow moet geldig zijn. Waarschuwing Yes
MSTEST0017 Assertie-argumenten moeten in de juiste volgorde worden meegegeven. Informatie Yes
MSTEST0018 DynamicData moet geldig zijn. Waarschuwing Yes
MSTEST0023 Maak de boolean-assertie niet onwaar. Informatie Yes
MSTEST0024 Sla statische TestContext niet op. Waarschuwing Nee.
MSTEST0026 Assertie args moet voorwaardelijke toegang voorkomen. Informatie Nee.
MSTEST0030 Het type dat een testmethode bevat, moet een testklasse zijn. Waarschuwing Yes
MSTEST0031 Gebruik System.ComponentModel.DescriptionAttribute niet. Informatie Yes
MSTEST0032 Beoordeel altijd waarheidsvoorwaarde van assertie. Informatie Nee.
MSTEST0034 Gebruik ClassCleanupBehavior.EndOfClass. Informatie Yes
MSTEST0035 Gebruik DeploymentItem met testmethode of testklasse. Informatie Nee.
MSTEST0037 Gebruik de juiste assertiemethoden. Informatie Yes
MSTEST0038 Vermijd Assert.AreSame met waardetypen. Informatie Yes
MSTEST0039 Gebruik nieuwere Assert.Throws-methoden. Informatie Yes
MSTEST0040 Vermijd het gebruik van asserts in een async void-context. Waarschuwing Nee.
MSTEST0041 Gebruik kenmerken op basis van voorwaarden met testklasse. Waarschuwing Nee.
MSTEST0042 Duplicate DataRow. Waarschuwing Nee.
MSTEST0043 Gebruik het kenmerk voor opnieuw proberen bij de testmethode. Waarschuwing → fout* Yes
MSTEST0046 Gebruik Assert in plaats van StringAssert. Informatie Yes
MSTEST0048 Het gebruik van de eigenschap TestContext. Waarschuwing Nee.
MSTEST0049 Flow TestContext CancellationToken. Informatie Yes
MSTEST0050 De globale testinrichting moet geldig zijn. Waarschuwing Yes
MSTEST0051 Assert.Throws moet één instructie bevatten. Informatie Yes
MSTEST0052 Vermijd expliciet DynamicDataSourceType. Informatie Yes
MSTEST0053 Vermijd het gebruik van assert-formatparameters. Informatie Yes
MSTEST0054 Gebruik de eigenschap CancellationToken. Informatie Yes
MSTEST0055 Negeer de retourwaarde van tekenreeksmethode niet. Waarschuwing Nee.
MSTEST0056 TestMethodAttribute moet DisplayName correct instellen. Informatie Yes
MSTEST0057 TestMethodAttribute moet broninformatie doorgeven. Waarschuwing Nee.
MSTEST0058 Vermijd asserties in catch-blokken. Informatie Nee.
MSTEST0059 Gebruik het kenmerk Parallelliseren correct. Waarschuwing Nee.
MSTEST0060 Dubbele TestMethodAttribute. Waarschuwing Yes
MSTEST0061 Gebruik het kenmerk OSCondition in plaats van runtimecontrole. Informatie Yes
MSTEST0062 Vermijd testmethodeparameters voor out/ref. Waarschuwing Yes
MSTEST0063 Testklasse moet een geldige constructor hebben. Waarschuwing Nee.

* Geëscaleerd naar Fout in de Recommended- en All-modus.

Algemene scenario's

Validatie van teststructuur

Zorg ervoor dat uw testklassen, methoden en armaturen voldoen aan de MSTest-vereisten:

  • MSTEST0002: Test de indelingsvereisten voor klassen (bijvoorbeeld openbaar, niet-statisch).
  • MSTEST0003: Indelingsvereisten voor testmethode (⚠️ geëscaleerd naar Fout).
  • MSTEST0030: Methoden met [TestMethod] moeten zich in een [TestClass].
  • MSTEST0063: Klasseconstructorvalidatie testen.

Levenscyclusmethoden

Initialisatie- en opschoonmethoden valideren:

Gegevensgestuurd testen

Zorg ervoor dat gegevenskenmerken correct worden gebruikt:

Betere asserties schrijven

Regels voor correct en effectief gebruik van asserties:

  • MSTEST0017: Geef de verwachte/werkelijke waarde door in de juiste volgorde.
  • MSTEST0023: Negate condities niet (gebruik direct Assert.IsFalse).
  • MSTEST0026: Vermijd het gebruik van null-conditionele operators in assertions.
  • MSTEST0032: Altijd waar-voorwaarden controleren.
  • MSTEST0037: gebruik de meest geschikte assertiemethode.
  • MSTEST0038: Gebruik AreSame niet met waardetypen.
  • MSTEST0039: Assert.ThrowsExactly (nieuwere API) gebruiken.
  • MSTEST0046: Geef de voorkeur aan Assert boven StringAssert.
  • MSTEST0051: Assert.Throws moet één instructie testen.
  • MSTEST0053: gebruik tekenreeksinterpolatie in plaats van notatieparameters.
  • MSTEST0058: Plaats geen beweringen in catch blocks.

TestContext-gebruik

Het juiste gebruik van het TestContext-object:

  • MSTEST0005: Validatie van de eigenschap TestContext.
  • MSTEST0024: Sla TestContext niet op in statische velden.
  • MSTEST0048: Beperkte toegang tot eigenschappen in testomgevingen.
  • MSTEST0049: Stroomannuleringstokens van TestContext.
  • MSTEST0054: De eigenschap TestContext.CancellationToken gebruiken.

Asynchrone patronen

Regels voor asynchrone testcode:

  • MSTEST0040: Vermijd asserties in asynchrone void-methoden.

Testconfiguratie

  • MSTEST0031: Gebruik de juiste kenmerken (niet System.ComponentModel.Description).
  • MSTEST0035: DeploymentItem-gebruik.
  • MSTEST0041: Voorwaardekenmerken moeten zich in testklassen bevinden.
  • MSTEST0043: kenmerken voor opnieuw proberen moeten zijn op testmethoden (⚠... geëscaleerd naar fout).
  • MSTEST0055: Negeer de retourwaarden van de stringmethoden niet.
  • MSTEST0056: Stel de DisplayName correct in voor TestMethodAttribute.
  • MSTEST0057: Brongegevens doorgeven in aangepaste TestMethodAttribute.
  • MSTEST0059: gebruik niet zowel Parallelize als DoNotParallelize.
  • MSTEST0060: Vermijd dubbele TestMethodAttribute.
  • MSTEST0061: Het kenmerk OSCondition gebruiken voor platformcontroles.