共用方式為


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

如需詳細資訊,請參閱 如何隱藏程式代碼分析警告