Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
| Недвижимость | Ценность |
|---|---|
| Идентификатор правила | MSTEST0057 |
| Заголовок | Распространение исходных сведений в атрибутах пользовательского метода тестирования |
| Категория | Usage |
| Исправление является разрушающим или неразрушающим | Non-breaking |
| Включен по умолчанию | Да |
| Серьезность по умолчанию | Предупреждение |
| представлено в версии | 4.0.0 |
| Существует ли исправление кода | Да |
Причина
Пользовательский TestMethodAttribute класс не распространяет сведения вызывающего объекта в конструктор базового класса.
Описание правила
При создании настраиваемых атрибутов тестовых методов, производных от TestMethodAttribute, следует распространять исходную информацию с помощью атрибутов информации о вызывающем. Это позволяет MSTest правильно отслеживать исходный файл и номер строки для методов тестирования, улучшать диагностику, отчеты о результатах теста и поведение обозревателя тестов.
public class MyTestMethodAttribute : TestMethodAttribute
{
public MyTestMethodAttribute() // Violation
: base()
{
}
}
Устранение нарушений
Добавьте CallerFilePath и CallerLineNumber параметры в конструктор и передайте их в базовый класс.
using System.Runtime.CompilerServices;
public class MyTestMethodAttribute : TestMethodAttribute
{
public MyTestMethodAttribute(
[CallerFilePath] string callerFilePath = "",
[CallerLineNumber] int callerLineNumber = -1)
: base(callerFilePath, callerLineNumber)
{
}
}
Когда следует подавлять предупреждения
Не отключайте предупреждения, создаваемые этим правилом. Распространение сведений об источнике важно для надлежащего создания отчетов о тестах и диагностики.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable MSTEST0057
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0057
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0057.severity = none
Дополнительные сведения см. в разделе "Подавление предупреждений анализа кода".