| 屬性 | 值 |
|---|---|
| 規則識別碼 | MSTEST0010 |
| 標題 | ClassInitialize 方法應具有有效的配置 |
| 類別 | 使用方式 |
| 修正程式是中斷或非中斷 | 不中斷 |
| 預設為啟用 | Yes |
| 預設嚴重性 | 警告 |
| 在版本中引進 | 3.3.0 |
| 是否有程式碼修正 | Yes |
原因
標記為 [ClassInitialize] 的方法應該具有有效配置。
檔案描述
標記為 [ClassInitialize] 的方法應該遵循下列配置才有效:
- 若未設定
InheritanceBehavior模式,就無法在泛型類別上宣告它 - 其應為
public - 其應為
static - 其不應為
async void - 其不應為特殊方法 (完成項、運算子等...)。
- 其不應為泛型
- 它應該採用型別
TestContext的一個參數 - 傳回型別應為
void、Task或ValueTask - 如果類別為
InheritanceBehavior.BeforeEachDerivedClass,則應該指定abstract屬性參數。 - 如果類別為
InheritanceBehavior.BeforeEachDerivedClass,則不該指定sealed屬性參數。
宣告這些方法的類型也應該遵守下列規則:
- 類型應為
class。 -
class應為public或internal(如果測試專案使用[DiscoverInternals]屬性)。 -
class不應為static。 - 如果
class為sealed,則應該以[TestClass](或衍生屬性) 標示。
- 類別不應為泛型
如何修正違規
請確定方法符合上述的配置。
隱藏警告的時機
請勿隱藏此規則的警告。 如果忽略此規則,則將會跳過加上旗標的執行個體或導致在執行階段時發生錯誤。
隱藏警告
如果您只想要隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。
#pragma warning disable MSTEST0010
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0010
若要停用檔案、資料夾或項目的規則,請將其嚴重性設定為 組態檔中的 none。
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0010.severity = none
如需詳細資訊,請參閱 如何抑制程式代碼分析警告。