共用方式為


MSTEST0011:ClassCleanup 方法應具有有效的配置

屬性
規則識別碼 MSTEST0011
標題 ClassCleanup 方法應具有有效的配置
類別 使用方式
修正程式是中斷或非中斷 不中斷
預設為啟用 Yes
預設嚴重性 警告
在版本中引進 3.3.0
是否有程式碼修正 Yes

原因

標記為 [ClassCleanup] 的方法應該具有有效配置。

檔案描述

標記為 [ClassCleanup] 的方法應該遵循下列配置才有效:

  • 若未設定 InheritanceBehavior 模式,就無法在泛型類別上宣告它
  • 其應為 public
  • 其應為 static
  • 其不應為 async void
  • 其不應為特殊方法 (完成項、運算子等...)。
  • 其不應為泛型
  • 它不應該接受任何參數,但從 MSTest 3.8 開始,可以接受單一 TestContext 參數。
  • 傳回型別應為 voidTaskValueTask
  • 如果類別為 InheritanceBehavior.BeforeEachDerivedClass,則應該指定 abstract 屬性參數。
  • 如果類別為 InheritanceBehavior.BeforeEachDerivedClass,則不該指定 sealed 屬性參數。

宣告這些方法的類型也應該遵守下列規則:

  • 類型應為 class
  • class 應為 publicinternal (如果測試專案使用 [DiscoverInternals] 屬性)。
  • class 不應為 static
  • 如果 classsealed,則應該以 [TestClass] (或衍生屬性) 標示。
  • 類別不應為泛型

如何修正違規

請確定方法符合上述的配置。

隱藏警告的時機

請勿隱藏此規則的警告。 如果忽略此規則,則將會跳過加上旗標的執行個體或導致在執行階段時發生錯誤。

隱藏警告

如果您只想要隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。

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

若要停用檔案、資料夾或項目的規則,請將其嚴重性設定為 組態檔中的 none

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

如需詳細資訊,請參閱 如何抑制程式碼分析警告