MSTEST0010. Метод ClassInitialize должен иметь допустимый макет

Свойство Значение
Идентификатор правила MSTEST0010
Заголовок Метод ClassInitialize должен иметь допустимый макет
Категория Использование
Исправление является критическим или не критическим Не критическое
Включен по умолчанию Да
Серьезность по умолчанию Предупреждение
Представлено в версии 3.3.0
Исправление кода Да

Причина

Метод, помеченный как [ClassInitialize] допустимый макет.

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

Методы, помеченные как допустимые, [ClassInitialize] должны соответствовать следующему макету:

  • Его нельзя объявить в универсальном классе без InheritanceBehavior установки режима.
  • оно должно быть public
  • оно должно быть static
  • это не должно быть async void
  • он не должен быть специальным методом (метод завершения, оператор...).
  • Оно не должно быть универсальным
  • он должен принимать один параметр типа TestContext
  • Тип возвращаемого значения должен иметь значение voidTask илиValueTask
  • InheritanceBehavior.BeforeEachDerivedClass Параметр атрибута должен быть указан, если класс имеет значение abstract.
  • InheritanceBehavior.BeforeEachDerivedClass Параметр атрибута не должен быть указан, если класс имеет значение sealed.

Тип, объявляющий эти методы, также должен соблюдать следующие правила:

  • Тип должен быть class.
  • Должен class быть public или internal (если тестовый проект использует [DiscoverInternals] атрибут).
  • Не class должно быть static.
  • Если значение class имеет значение sealed, оно должно быть отмечено производным [TestClass] атрибутом (или производным атрибутом).
  • Класс не должен быть универсальным

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

Убедитесь, что метод соответствует приведенному выше макету.

Когда лучше отключить предупреждения

Для этого правила отключать вывод предупреждений не следует. Если игнорировать это правило, помеченные экземпляры будут пропущены или приводят к ошибке среды выполнения.