MSTEST0001: Aktivera eller inaktivera testparallellisering explicit

Property Värde
Regel-ID MSTEST0001
Title Aktivera eller inaktivera testparallellisering explicit
Kategori Prestanda
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard Ja
Standard allvarlighetsgrad Varning som börjar med 4.0.0, Info före
Introducerad i version 3.2.0
Finns det en kodkorrigering Nej

Orsak

Sammansättningen är inte markerad med [assembly: Parallelize] eller [assembly: DoNotParallelize] -attribut.

Regelbeskrivning

Som standard kör MSTest tester inom samma sammansättning sekventiellt, vilket kan leda till allvarliga prestandabegränsningar. Vi rekommenderar att du aktiverar sammansättningsattribut [assembly: Parallelize] för att köra tester parallellt, eller om sammansättningen är känd för att inte vara parallelliserbar, för att uttryckligen använda sammansättningsnivåattributet [assembly: DoNotParallelize].

Standardkonfigurationen för [assembly: Parallelize] motsvarar [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)], vilket innebär att parallelliseringen anges på klassnivå (inte metodnivå) och använder så många trådar som möjligt (beroende på intern implementering).

Så här åtgärdar du överträdelser

Lägg till [assembly: Parallelize] eller [assembly: DoNotParallelize] attribut för att åtgärda ett brott mot den här regeln. Vi rekommenderar att du använder [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] för att ha bästa parallellisering.

När du ska ignorera varningar

Ignorera inte en varning från den här regeln. Många bibliotek kan dra nytta av en enorm prestandaökning när parallellisering aktiveras. När testprogrammet är utformat på ett sätt som förhindrar parallellisering, hjälper attributet explicit att hjälpa nya utvecklare att förstå begränsningarna i biblioteket.

Ignorera en varning

Eftersom den här regeln rapporteras på kompileringsnivå och inte i en .cs - eller .vb källfil kan du inte förhindra överträdelser av den här regeln infogad eller via en .editorconfig fil.

Om du vill inaktivera regeln för ett projekt lägger du till <NoWarn>$(NoWarn);MSTEST0001</NoWarn> i projektfilen eller Directory.Build.props filen.

Om du vill kontrollera allvarlighetsgraden för den här regeln kan du bara göra det via en .globalconfig fil. Mer information finns i Konfigurationsfiler.

is_global = true

dotnet_diagnostic.MSTEST0001.severity = none

Mer information finns i Så här utelämnar du kodanalysvarningar.