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

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

原因

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

規則の説明

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

  • InheritanceBehavior モードが設定されていない場合、ジェネリック クラス上で宣言することはできません
  • これは public である必要があります
  • これは static である必要があります
  • これを async void にすることはできません
  • これを特殊なメソッド (ファイナライザー、演算子など) にすることはできません。
  • これをジェネリックにすることはできません
  • これはパラメーターを受け取ることはできません
  • 戻り値の型は voidTaskValueTask のどれかである必要があります
  • クラスが abstract の場合は、InheritanceBehavior.BeforeEachDerivedClass 属性パラメーターを指定する必要があります。
  • クラスが sealed の場合は、InheritanceBehavior.BeforeEachDerivedClass 属性パラメーターを指定する必要はありません。

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

  • 型は、class である必要があります。
  • classpublic または internal である必要があります (テスト プロジェクトが [DiscoverInternals] 属性を使用する場合)。
  • classstatic にしないようにする必要があります。
  • classsealed である場合は、[TestClass] (または派生型の属性) のマークを付ける必要があります。
  • クラスはジェネリックにしないようにする必要があります

違反の修正方法

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

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

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