Share via


MSTEST0001: Tests parallellisatie expliciet in- of uitschakelen

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.