| プロパティ | 値 |
|---|---|
| ルール ID | MSTEST0001 |
| Title | テストの並列化を明示的に有効または無効にする |
| カテゴリ | パフォーマンス |
| 修正が中断ありか中断なしか | なし |
| 既定で有効 | はい |
| 既定の重要度 | 4.0.0 以降の警告(前の情報) |
| 導入されたバージョン | 3.2.0 |
| コード修正の有無 | いいえ |
原因
アセンブリは、 [assembly: Parallelize] または [assembly: DoNotParallelize] 属性でマークされていません。
規則の説明
既定では、MSTest は同じアセンブリ内でテストを順番に実行するため、パフォーマンスに重大な制限が生じる可能性があります。 アセンブリ 属性 [assembly: Parallelize] を有効にしてテストを並列で実行するか、アセンブリが並列化できないことがわかっている場合は、アセンブリ レベル属性 [assembly: DoNotParallelize] を明示的に使用することをお勧めします。
[assembly: Parallelize] という既定の構成は、[assembly: Parallelize(Scope = ExecutionScope.ClassLevel)] と同じです。つまり、並列処理は (メソッド レベルではなく) クラス レベルで設定され、(内部実装に応じて) 可能な限り多くのスレッドを使用します。
違反の修正方法
この規則違反を修正するには、[assembly: Parallelize] または [assembly: DoNotParallelize] 属性を追加します。 最適な並列処理を行うには、[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] を使用することをお勧めします。
どのようなときに警告を抑制するか
このルールからの警告は抑制しないでください。 多くのライブラリでは、並列処理を有効にすると、パフォーマンスが大幅に向上するメリットがあります。 テスト アプリケーションが並列化を防ぐように設計されている場合、属性を明示的に設定すると、新しい開発者がライブラリの制限事項を理解するのに役立ちます。
警告を抑制する
このルールはコンパイル レベルで報告され、 .cs または .vb ソース ファイルでは報告されないため、インラインまたは .editorconfig ファイルを介してこの規則への違反を抑制することはできません。
プロジェクトのルールを無効にするには、プロジェクト ファイルまたは<NoWarn>$(NoWarn);MSTEST0001</NoWarn> ファイルにDirectory.Build.propsを追加します。
このルールの重大度を制御するには、 .globalconfig ファイルを使用する必要があります。 詳細については、「 構成ファイル」を参照してください。
is_global = true
dotnet_diagnostic.MSTEST0001.severity = none
詳細については、「コード分析の警告を抑制する方法」を参照してください。
.NET