Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
- MSTEST0008: TestInitialize-validatie.
- MSTEST0009: TestCleanup-validatie.
- MSTEST0010: ClassInitialize-validatie.
- MSTEST0011: ClassCleanup-validatie.
- MSTEST0012: AssemblyInitialize-validatie.
- MSTEST0013: Validatie van AssemblyCleanup.
- MSTEST0034: Stel ClassCleanupBehavior.EndOfClass in.
- MSTEST0050: Validatie van globale testarmaturen.
Gegevensgestuurd testen
Zorg ervoor dat gegevenskenmerken correct worden gebruikt:
- MSTEST0007: Gegevenskenmerken moeten op testmethoden staan.
- MSTEST0014: DataRow-validatie.
- MSTEST0018: DynamicData-validatie.
- MSTEST0042: Dubbele DataRows detecteren.
- MSTEST0052: AutoDetectie gebruiken voor DynamicDataSourceType.
- MSTEST0062: Vermijd out-/ref-parameters.
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.