MSTEST0018:DynamicData 应该有效
属性 | 值 |
---|---|
规则 ID | MSTEST0018 |
标题 | DynamicData 应该有效 |
类别 | 使用情况 |
修复是中断修复还是非中断修复 | 非中断 |
默认为启用 | 是 |
默认严重性 | 警告 |
引入版本 | 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
有关详细信息,请参阅如何禁止显示代码分析警告。