Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
| 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 | Ostrzeżenie rozpoczynające się od wersji 4.0.0, informacje przed |
| 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
Ponieważ ta reguła jest zgłaszana na poziomie kompilacji, a nie w pliku źródłowym .cs lub .vb, nie można pominąć naruszeń tej reguły ani w kodzie źródłowym, ani poprzez plik .editorconfig.
Aby wyłączyć regułę dla projektu, dodaj <NoWarn>$(NoWarn);MSTEST0001</NoWarn> do pliku projektu lub pliku Directory.Build.props.
Aby kontrolować surowość tej reguły, można to zrobić tylko za pomocą pliku .globalconfig. Aby uzyskać więcej informacji, zobacz Pliki konfiguracji.
is_global = true
dotnet_diagnostic.MSTEST0001.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.