次の方法で共有


MSTEST0001: テストの並列化を明示的に有効または無効にする

プロパティ
ルール 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

詳細については、「コード分析の警告を抑制する方法」を参照してください。