Бөлісу құралы:


MSTEST0056. Использование свойства DisplayName для отображаемых имен метода тестирования

Недвижимость Ценность
Идентификатор правила MSTEST0056
Заголовок Использование свойства DisplayName для отображаемых имён тестовых методов
Категория Usage
Исправление является разрушающим или неразрушающим Non-breaking
Включен по умолчанию Да
Серьезность по умолчанию Предупреждение
представлено в версии 4.0.0
Существует ли исправление кода Да

Причина

Атрибут метода теста использует аргумент строкового конструктора DisplayName вместо свойства.

Описание правила

При указании настраиваемого отображаемого имени для метода тестирования следует использовать DisplayName свойство вместо передачи строки в качестве аргумента конструктора. В MSTest 4.0 и более поздних версиях аргумент конструктора строк используется для исходной информации (пути к файлу вызывающего объекта), а не отображаемого имени, что является критическим изменением от MSTest 3.x. DisplayName Использование свойства гарантирует правильность работы кода и избегает потенциальной путаницы.

[TestClass]
public class TestClass
{
    [TestMethod("My Test Name")] // Violation
    public void TestMethod()
    {
        // Test code
    }
}

Устранение нарушений

Замените аргумент конструктора свойством DisplayName .

[TestClass]
public class TestClass
{
    [TestMethod(DisplayName = "My Test Name")]
    public void TestMethod()
    {
        // Test code
    }
}

Когда следует подавлять предупреждения

Не отключайте предупреждения, создаваемые этим правилом. Использование свойства DisplayName — единственный способ указать пользовательские отображаемые имена для методов тестирования. Если вы намерены явно передать значение для параметра пути к вызывающему файлу, а не задать отображаемое имя, это предупреждение можно отключить, но это редко требуется.

Отключение предупреждений

Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.

#pragma warning disable MSTEST0056
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0056

Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0056.severity = none

Дополнительные сведения см. в разделе "Подавление предупреждений анализа кода".