MSTEST0003. Методы тестирования должны иметь допустимый макет
Свойство | Значение |
---|---|
Идентификатор правила | MSTEST0003 |
Заголовок | Методы тестирования должны иметь допустимый макет |
Категория | Использование |
Исправление является критическим или не критическим | Критическое |
Включен по умолчанию | Да |
Серьезность по умолчанию | Предупреждение (переходит в разряд ошибок при настройке MSTestAnalysisMode на Recommended или All ) |
Представлено в версии | 3.2.0 |
Есть ли исправление кода? | Да |
Причина
Метод теста не соответствует одному или нескольким точкам требуемого макета метода тестирования.
Описание правила
Методы тестирования (методы, [TestMethod]
помеченные атрибутом), должны соответствовать заданному макету, чтобы считаться допустимым в MSTest:
- они должны быть
public
(илиinternal
если[assembly: DiscoverInternals]
задан атрибут) - они не должны быть
static
- Они не должны быть универсальными при использовании MSTest 3.7 или более ранних версий
- они не должны быть
abstract
- они должны возвращать
void
илиTask
- они не должны быть
async void
- они не должны быть специальным методом (конструктор, метод завершения, оператор...)
- Тип, объявляющий этот метод, должен быть открытым
Устранение нарушений
Убедитесь, что метод теста соответствует требуемому макету, описанному выше.
Когда лучше отключить предупреждения
Для этого правила отключать вывод предупреждений не следует. Игнорируя это правило, тесты будут игнорироваться, так как MSTest не будет рассматривать этот метод как метод тестирования.
Подавление предупреждения
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable MSTEST0003
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0003
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0003.severity = none
Дополнительные сведения см. в статье Подавление предупреждений анализа кода.