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.
Eigenschappen | Weergegeven als |
---|---|
Regel-id | MSTEST0001 |
Titel | Tests parallellisatie expliciet in- of uitschakelen |
Categorie | Prestaties |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld | Ja |
Standaard ernst | Info |
Geïntroduceerd in versie | 3.2.0 |
Is er een codeoplossing | Nee |
Oorzaak
De assembly is niet gemarkeerd met [assembly: Parallelize]
of [assembly: DoNotParallelize]
kenmerk.
Beschrijving van regel
MSTest voert standaard tests uit binnen dezelfde assembly sequentieel, wat kan leiden tot ernstige prestatiebeperkingen. Het is raadzaam om het assemblykenmerk [assembly: Parallelize]
in te schakelen om tests parallel uit te voeren of als de assembly bekend is dat deze niet parallel kan worden uitgevoerd, om expliciet het kenmerk [assembly: DoNotParallelize]
assemblyniveau te gebruiken.
De standaardconfiguratie [assembly: Parallelize]
is gelijk aan [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)]
, wat betekent dat de parallelle uitvoering wordt ingesteld op klasseniveau (niet methodeniveau) en zoveel mogelijk threads gebruikt (afhankelijk van de interne implementatie).
Schendingen oplossen
Als u een schending van deze regel wilt oplossen, voegt u dit toe [assembly: Parallelize]
of [assembly: DoNotParallelize]
kenmerk. We raden u aan om te gebruiken [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
om de beste parallelle uitvoering te hebben.
Wanneer waarschuwingen onderdrukken
Een waarschuwing van deze regel niet onderdrukken. Veel bibliotheken kunnen profiteren van een enorme prestatieverbeteringen bij het inschakelen van parallelle uitvoering. Wanneer de testtoepassing zodanig is ontworpen dat parallellisatie wordt voorkomen, kunnen nieuwe ontwikkelaars met het kenmerk expliciet inzicht krijgen in de beperkingen van de bibliotheek.
Een waarschuwing onderdrukken
Schendingen van deze regel kunnen niet inline worden onderdrukt.
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst ervan in op none
in het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0001.severity = none
Raadpleeg Hoe u codeanalysewaarschuwingen kunt onderdrukkenvoor meer informatie.