Udostępnij za pośrednictwem


MSTEST0001: Jawne włączanie lub wyłączanie równoległych testów

Właściwości Wartość
Identyfikator reguły MSTEST0001
Tytuł Jawne włączanie lub wyłączanie równoległych testów
Kategoria Wydajność
Poprawka powodująca niezgodność lub niezgodność Niezgodność
Domyślnie włączone Tak
Ważność domyślna Informacje
Wprowadzone w wersji 3.2.0
Istnieje poprawka kodu Nie.

Przyczyna

Zestaw nie jest oznaczony atrybutem [assembly: Parallelize] lub [assembly: DoNotParallelize] .

Opis reguły

Domyślnie narzędzie MSTest uruchamia testy w ramach tego samego zestawu sekwencyjnie, co może prowadzić do poważnych ograniczeń wydajności. Zaleca się włączenie atrybutu [assembly: Parallelize] zestawu w celu równoległego uruchamiania testów lub jeśli zestaw jest znany jako niezrównywalny, aby użyć jawnie atrybutu [assembly: DoNotParallelize]poziomu zestawu .

Domyślna konfiguracja [assembly: Parallelize] programu jest równoważna [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)]funkcji , co oznacza, że równoległość zostanie ustawiona na poziomie klasy (a nie na poziomie metody) i będzie używać jak największej liczby wątków (w zależności od implementacji wewnętrznej).

Jak naprawić naruszenia

Aby naprawić naruszenie tej reguły, dodaj [assembly: Parallelize] lub [assembly: DoNotParallelize] atrybut. Zalecamy użycie [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] polecenia , aby mieć najlepszą równoległizację.

Kiedy pomijać ostrzeżenia

Nie pomijaj ostrzeżeń dla tej reguły. Wiele bibliotek może skorzystać z ogromnego zwiększenia wydajności podczas włączania przetwarzania równoległego. Gdy aplikacja testowa została zaprojektowana w sposób uniemożliwiający równoległość, jawne ustawienie atrybutu pomaga nowym deweloperom zrozumieć ograniczenia biblioteki.