次の方法で共有


MSTEST0012: AssemblyInitialize メソッドには有効なレイアウトが必要

プロパティ
ルール ID MSTEST0012
Title AssemblyInitialize メソッドには有効なレイアウトが必要
カテゴリ 使用法
修正が中断ありか中断なしか なし
既定で有効 はい
既定の重要度 警告
導入されたバージョン 3.3.0
コード修正の有無 はい

原因

[AssemblyInitialize] というマークが付いたメソッドには、有効なレイアウトが必要です。

規則の説明

[AssemblyInitialize] というマークが付いたメソッドを有効にするには、以下のレイアウトに従う必要があります。

  • これは public である必要があります
  • これは static である必要があります
  • これを async void にすることはできません
  • これを特殊なメソッド (ファイナライザー、演算子など) にすることはできません。
  • ジェネリックにすることはできません
  • 抽象にすることはできません
  • TestContext のパラメーターを 1 つ取る必要があります
  • 戻り値の型は voidTaskValueTask のいずれかである必要があります

これらのメソッドを宣言する型は、次の規則にも従う必要があります。

  • 型は、クラスである必要があります。
  • クラスはパブリックまたは内部である必要があります (テスト プロジェクトが [DiscoverInternals] 属性を使用している場合)。
  • クラスは [TestClass] (または派生属性) でマークする必要があります
  • クラスはジェネリックにしないようにする必要があります

違反の修正方法

メソッドが上記で説明したレイアウトと一致していることを確認してください。

どのようなときに警告を抑制するか

この規則による警告は抑制しないでください。 このルールを無視すると、フラグが立ったインスタンスはスキップされるか、ランタイム エラーを引き起こします。

警告を抑制する

単一の違反を抑制するだけの場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、規則をもう一度有効にします。

#pragma warning disable MSTEST0012
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0012

ファイル、フォルダー、またはプロジェクトのルールを無効にするには、構成ファイルでその重要度を none に設定します。

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0012.severity = none

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