プロパティ | 値 |
---|---|
ルール ID | MSTEST0001 |
Title | テストの並列化を明示的に有効または無効にする |
カテゴリ | パフォーマンス |
修正が中断ありか中断なしか | なし |
既定で有効 | はい |
既定の重要度 | 情報 |
導入されたバージョン | 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)]
を使用することをお勧めします。
どのようなときに警告を抑制するか
このルールからの警告は抑制しないでください。 多くのライブラリでは、並列処理を有効にすると、パフォーマンスが大幅に向上するメリットがあります。 テスト アプリケーションが並列化を防ぐように設計されている場合、属性を明示的に設定すると、新しい開発者がライブラリの制限事項を理解するのに役立ちます。
警告を抑制する
このルールに対する違反をインラインで抑制することはできません。
ファイル、フォルダー、またはプロジェクトのルールを無効にするには、構成ファイルでその重要度を none
に設定します。
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0001.severity = none
詳細については、「コード分析の警告を抑制する方法」を参照してください。
.NET