次の方法で共有


MSTest コード分析

"MSTest 分析" ("MSTESTxxxx") ルールでは、お使いの C# または Visual Basic コードにセキュリティ、パフォーマンス、設計などの問題がないか検査が行われます。

ヒント

Visual Studio を使用する場合、多くのアナライザー ルールには、"コード修正" が関連付けられており、これを適用して問題を修正できます。 コード修正は、電球アイコン メニューに示されます。

ルールは、パフォーマンス、使用状況など、いくつかのカテゴリに分類されます。

MSTest.TestFramework 3.7 以降、MSTest.Analyzers NuGet パッケージはフレームワークの依存関係です。 以前のバージョンでは、MSTest メタパッケージを使用するか、MSTest.Analyzers のパッケージ参照を明示的に追加する必要があります。

MSTestAnalysisMode

MSTest 3.8 以降では、MSTestAnalysisMode という名前の MSBuild プロパティを使用して、どのアナライザーがどの重大度で有効になっているかを判断できます。

ヒント

各モードでどの重大度でどのルールが有効になっているかを確認するには、NuGet キャッシュの対象バージョンのパッケージに移動し、globalconfigs ディレクトリを見つけて分析モードに対応する .globalconfig ファイルを開きます。 NuGet キャッシュ ディレクトリの検索の詳細については、「グローバル パッケージ、キャッシュ、および一時フォルダーを管理する」を参照してください。 そのディレクトリから、まず mstest.analyzers ディレクトリを見つけ、その後にバージョン (3.8 以降) を特定し、最後に globalconfigsを見つけてください。 目的のバージョンの NuGet パッケージを nuget.org からダウンロードして NuGet パッケージ エクスプローラー (Windows アプリ) で表示したり、Web アプリ バージョンの NuGet パッケージ エクスプローラーで直接表示したりすることもできます。

このプロパティで使用できる値は次のとおりです。

None

この値により、すべてのアナライザーが重大度 none に設定され、すべてのアナライザーが無効になります。 その後、.editorconfig または .globalconfig ファイルを使用して個々のアナライザーを有効にすることができます。

Default

この設定は、各ルールの既定の文書化された動作に従います。

  • 既定で有効になっているルールでは、既定の重大度が使用されます。
  • 既定で無効になっているルールでは、重大度 none が使用されます。

メモ

警告として既定で有効になっているルールは、実行時に問題が発生することが予想される違反です。

これは、ほとんどの開発者が使用することが想定されているモードです。 既定で Info (suggestion) 重大度で有効になっているルールは警告に昇格されます。 さらに、特定のルールは、Recommended モードと All モードの両方でエラーに昇格される可能性があります。 たとえば、MSTEST0003: テスト メソッドには有効なレイアウトが必要です。Recommended モードおよび All モードではエラーとして扱われます。

All

このモードは Recommended よりも積極的です。 すべてのルールが警告として有効になっています。 Recommended モードで説明したように、特定のルールは Recommended モードと All モードの両方でエラーに昇格される可能性があります。 たとえば、MSTEST0003: テスト メソッドには有効なレイアウトが必要です。Recommended モードおよび All モードではエラーとして扱われます。

カテゴリ

デザイン規則

デザイン規則は、適切な設計と優れたプラクティスに準拠したテスト スイートの作成と保守に役立ちます。

パフォーマンス規則

パフォーマンス規則は高パフォーマンス テストをサポートします。

抑制規則

抑制規則は、他の規則からの診断の抑制をサポートします。

使い方の規則

使い方の規則は、MSTest の適切な使い方をサポートします。

MSTESTEXP

MSTest のいくつかの API は、ExperimentalAttribute で修飾されています。 この属性は、API が実験的なものであり、MSTest の将来のバージョンで削除または変更される可能性があることを示します。 この属性は、まだ安定しておらず、運用環境での使用に適していない可能性がある API を識別するために使用されます。

MSTESTEXP 診断では、コードで実験用 API を使用するようにアラートが表示されます。 SuppressMessageAttribute でこの診断を抑制するには、次のコードをプロジェクトに追加します。

using System.Diagnostics.CodeAnalysis;

[assembly: SuppressMessage("MSTESTEXP", "Justification")]

または、次のコードをプロジェクトに追加することで、プリプロセッサ ディレクティブを使用してこの診断を抑制することもできます。

#pragma warning disable MSTESTEXP
        // API that is causing the warning.
#pragma warning restore MSTESTEXP