MSTest-codeanalyse
MSTest-analyseregels ('MSTESTxxxx') inspecteren uw C# of Visual Basic-code voor beveiliging, prestaties, ontwerp en andere problemen.
Tip
Als u Visual Studio gebruikt, hebben veel analyseregels codecorrecties gekoppeld 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.
Vanaf MSTest 3.8 is een MSBuild-eigenschap met de naam MSTestAnalysisMode
beschikbaar om te bepalen welke analysen zijn ingeschakeld op welke ernst.
Tip
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.
Zie De globale pakketten, cache en tijdelijke mappen beherenvoor meer informatie over hoe u de NuGet-cachemap kunt vinden. Zoek vanuit die directory de map mstest.analyzers
, vervolgens de versie (3.8 of hoger), en daarna globalconfigs
.
U kunt ook het NuGet-pakket downloaden van de gewenste versie van nuget.org
en bekijken in NuGet Package Explorer (Windows-app) of rechtstreeks bekijken in de web-app-versie van NuGet Package Explorer.
De beschikbare waarden voor deze eigenschap:
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.
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 verwachten te gebruiken. Regels die standaard zijn ingeschakeld en de ernst 'info' (suggestion
) hebben, worden geëscaleerd naar waarschuwingen. Bovendien kunnen bepaalde regels worden geëscaleerd naar fouten in zowel Recommended
als All
modi. Bijvoorbeeld, MSTEST0003: Testmethoden moeten een geldige indeling hebben wordt geëscaleerd naar fout in Recommended
- en All
-modi's.
Deze modus is agressiever dan Recommended
. Alle regels worden ingeschakeld als waarschuwingen. Zoals vermeld voor Recommended
-modus, kunnen bepaalde regels naar fouten geëscaleerd worden in zowel Recommended
- als All
-modus. Bijvoorbeeld, MSTEST0003: Testmethoden moeten een geldige indeling hebben wordt geëscaleerd naar fout in Recommended
- en All
-modi's.
Notitie
De volgende regels zijn volledig optioneel en zijn niet ingeschakeld in de Default
, Recommended
of All
-modussen:
- MSTEST0015: Testmethode mag niet worden genegeerd
- MSTEST0019: Geef de voorkeur aan TestInitialize-methoden boven constructors
- MSTEST0020: Geef de voorkeur aan constructors boven TestInitialize-methoden
- MSTEST0021: Geef de voorkeur aan Dispose-methoden boven TestCleanup-methoden
- MSTEST0022: Prefer TestCleanup over verwijderingsmethoden
Ontwerpregels u helpen bij het maken en onderhouden van testsuites die voldoen aan de juiste ontwerp- en goede procedures.
Prestatieregels krachtige tests ondersteunen.
Onderdrukkingsregels ondersteunen het onderdrukken van diagnostische gegevens van andere regels.
gebruiksregels het juiste gebruik van MSTest ondersteunen.
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
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven: