Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
| 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.