MSTEST0018:DynamicData 應為有效
屬性 | 值 |
---|---|
規則識別碼 | MSTEST0018 |
職稱 | DynamicData 應為有效 |
類別 | 使用方式 |
修正程式是中斷或非中斷 | 不中斷 |
預設為啟用 | Yes |
預設嚴重性 | 警告 |
在版本中引進 | 3.6.0 |
原因
標記為 [DynamicData]
的方法應該具有有效配置。
檔案描述
標記為 [DynamicData]
的方法應同時標記為 [TestMethod]
(或衍生屬性)。
參考的「資料來源」成員:
- 應存在於指定的類型上 (如果未指定任何類型,則為目前的類別)
- 不應具有多載
- 應與
DataSourceType
屬性具有相同類型 (方法或屬性) - 應為
public
- 應為
static
- 不應為泛型
- 應為無參數
- 應傳回
IEnumerable<object[]>
、IEnumerable<Tuple<T,...>>
或IEnumerable<ValueTuple<,...>>
參考的「顯示名稱」成員:
- 應存在於指定的類型上 (如果未指定任何類型,則為目前的類別)
- 不應具有多載
- 應為方法
- 應為
public
- 應為
static
- 不應為泛型
- 應傳回
string
- 應恰好接受 2 個參數,其中第一個參數為
MethodInfo
,且第二個參數為object[]
範例:
public static string GetDisplayName(MethodInfo methodInfo, object[] data)
{
return string.Format("{0} ({1})", methodInfo.Name, string.Join(",", data));
}
如何修正違規
請確認屬性符合上述條件。
隱藏警告的時機
請勿隱藏此規則的警告。 如果忽略此規則,則將會跳過加上旗標的執行個體或導致在執行階段時發生錯誤。
隱藏警告
如果您只想要隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。
#pragma warning disable MSTEST0018
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0018
若要停用檔案、資料夾或項目的規則,請將其嚴重性設定為 組態檔中的 none
。
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0018.severity = none
如需詳細資訊,請參閱 如何隱藏程式代碼分析警告。