MSTEST0018: DynamicData должен быть допустимым
Свойство | Значение |
---|---|
Идентификатор правила | 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
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0018.severity = none
Дополнительные сведения см. в статье Подавление предупреждений анализа кода.