Sdílet prostřednictvím


MSTEST0001: Explicitní povolení nebo zakázání paralelizace testů

Vlastnost Hodnota
ID pravidla MSTEST0001
Název Explicitní povolení nebo zakázání paralelizace testů
Kategorie Výkon
Oprava způsobující chybu nebo chybu způsobující chybu Nenarušující
Povoleno ve výchozím nastavení Ano
Výchozí závažnost Upozornění počínaje verzí 4.0.0, informace před upozorněním.
Představeno ve verzi 3.2.0
Existuje oprava kódu No

Příčina

Sestavení není označeno atributem nebo [assembly: Parallelize] atributem[assembly: DoNotParallelize].

Popis pravidla

Ve výchozím nastavení msTest spouští testy ve stejném sestavení postupně, což může vést k vážným omezením výkonu. Doporučuje se povolit, aby atribut [assembly: Parallelize] sestavení spouštěl testy paralelně, nebo pokud je známo, že sestavení není paralelizovatelné, použít explicitně atribut [assembly: DoNotParallelize]úrovně sestavení .

Výchozí konfigurace [assembly: Parallelize] je ekvivalentní [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)], což znamená, že paralelizace bude nastavena na úrovni třídy (nikoli na úrovni metody) a bude používat co nejvíce vláken (v závislosti na interní implementaci).

Jak opravit porušení

Chcete-li opravit porušení tohoto pravidla, přidejte [assembly: Parallelize] nebo [assembly: DoNotParallelize] přidejte atribut. Doporučujeme použít [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] nejlepší paralelizaci.

Kdy potlačit upozornění

Nepotlačujte upozornění na toto pravidlo. Mnoho knihoven může těžit z velkého zvýšení výkonu při povolování paralelizace. Pokud je testovací aplikace navržena způsobem, který brání paralelizaci, atribut explicitně nastavený pomáhá novým vývojářům pochopit omezení knihovny.

Potlačte upozornění

Vzhledem k tomu, že toto pravidlo je hlášeno na úrovni kompilace a ne ve zdrojovém souboru .cs nebo .vb, nemůžete potlačit porušení tohoto pravidla vkládaná přímo v kódu nebo prostřednictvím souboru .editorconfig.

Chcete-li zakázat pravidlo pro projekt, přidejte <NoWarn>$(NoWarn);MSTEST0001</NoWarn> do souboru projektu nebo do souboru Directory.Build.props.

Pokud chcete řídit závažnost tohoto pravidla, můžete to udělat jenom prostřednictvím .globalconfig souboru. Další informace naleznete v tématu Konfigurační soubory.

is_global = true

dotnet_diagnostic.MSTEST0001.severity = none

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.