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 |
czy 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.
Pomijanie ostrzeżenia
Naruszenia tej reguły nie mogą być pomijane w tekście.
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji .
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0001.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.