Delen via


MSTest-codeanalyse

MSTest-analyseregels ('MSTESTxxxx') inspecteren uw C# of Visual Basic-code voor beveiliging, prestaties, ontwerp en andere problemen.

Aanbeveling

Wanneer u gebruikmaakt van Visual Studio, hebben veel analyseregels gekoppelde code-hervormingen die u kunt toepassen om het probleem op te lossen. Codecorrecties worden weergegeven in het pictogrammenu van de gloeilamp.

De regels zijn ingedeeld in categorieën zoals prestatiegebruik...

Vanaf MSTest.TestFramework 3.7 is het NUGet-pakket MSTest.Analyzers een afhankelijkheid van het framework. Voor eerdere versies moet u MSTest metapackage gebruiken of een pakketverwijzing voor MSTest.Analyzers expliciet toevoegen.

MSTestAnalyseModus

Vanaf MSTest 3.8 is een MSBuild-eigenschap met de naam MSTestAnalysisMode beschikbaar om te bepalen welke analysen zijn ingeschakeld op welke ernst.

Aanbeveling

Als u wilt zien welke regels zijn ingeschakeld op welke ernst voor elke modus, kunt u naar het pakket van de gewenste versie in De NuGet-cache navigeren, de globalconfigs map zoeken en het .globalconfig bestand openen dat overeenkomt met de analysemodus. Voor meer informatie over het vinden van de NuGet-cachemap, zie De globale pakketten, cache en tijdelijke mappen beheren. Zoek vanuit die directory de map mstest.analyzers, vervolgens de versie (3.8 of hoger), en daarna globalconfigs. U kunt ook het NuGet-pakket van de gewenste nuget.org versie downloaden en bekijken in NuGet Package Explorer (Windows-app) of rechtstreeks bekijken in de web-appversie van NuGet Package Explorer.

De beschikbare waarden voor deze eigenschap:

None

Met deze waarde worden alle analyses ingesteld op none ernst, waardoor ze allemaal worden uitgeschakeld. Vervolgens kunt u afzonderlijke analyses inschakelen met behulp van .editorconfig- of .globalconfig-bestanden.

Default

Deze instelling volgt het standaard gedocumenteerde gedrag voor elke regel.

  • Voor regels die standaard zijn ingeschakeld, wordt de standaard ernst gebruikt.
  • Regels die standaard zijn uitgeschakeld, hebben de ernstniveau none.

Notitie

Regels die standaard zijn ingeschakeld als waarschuwingen, zijn schendingen die naar verwachting problemen tijdens runtime veroorzaken.

Dit is de modus die de meeste ontwikkelaars naar verwachting zullen gebruiken. Regels die standaard zijn ingeschakeld en de ernst 'info' (suggestion) hebben, worden geëscaleerd naar waarschuwingen. De volgende regels worden geëscaleerd naar fouten in beide Recommended en All modi's:

All

Deze modus is agressiever dan Recommended. Alle regels worden ingeschakeld als waarschuwingen. Daarnaast worden de volgende regels geëscaleerd naar fouten:

Categorieën

Ontwerpregels

Met ontwerpregels kunt u testsuites maken en onderhouden die voldoen aan de juiste ontwerp- en goede procedures.

Regels voor prestaties

Prestatieregels bieden ondersteuning voor high-performance testen.

Onderdrukkingsregels

Onderdrukkingsregels ondersteunen het onderdrukken van diagnostische gegevens van andere regels.

Gebruiksregels

Gebruiksregels ondersteunen het juiste gebruik van MSTest.

MSTESTEXP

Verschillende API's van MSTest zijn voorzien van de ExperimentalAttribute. Dit kenmerk geeft aan dat de API experimenteel is en kan worden verwijderd of gewijzigd in toekomstige versies van MSTest. Het kenmerk wordt gebruikt om API's te identificeren die nog niet stabiel zijn en mogelijk niet geschikt zijn voor productiegebruik.

De MSTESTEXP diagnostische waarschuwing geeft een melding van het gebruik van een experimentele API in uw code. Als u deze diagnose wilt onderdrukken met de SuppressMessageAttribute, voegt u de volgende code toe aan uw project:

using System.Diagnostics.CodeAnalysis;

[assembly: SuppressMessage("MSTESTEXP", "Justification")]

U kunt deze diagnose ook onderdrukken met preprocessorrichtlijn door de volgende code toe te voegen aan uw project:

#pragma warning disable MSTESTEXP
        // API that is causing the warning.
#pragma warning restore MSTESTEXP