Поделиться через


Правила использования MSTest

Правила, поддерживающие надлежащее использование MSTest.

Идентификатор Имя Описание
MSTEST0002 АнaлизaторДолженБытьВалиднымКлассомТеста Тестовые классы, классы, помеченные атрибутом [TestClass], должны учитывать следующий макет, который считается допустимым в MSTest:
— оно должно быть public (или internal, если задан атрибут [assembly: DiscoverInternals])
- это не должно быть static
- это не должно быть универсальным.
MSTEST0003 TestMethodShouldBeValidAnalyzer (Анализатор, который проверяет корректность метода тестирования) Методы тестирования, методы, помеченные атрибутом [TestMethod], должны учитывать следующий макет, который считается допустимым в MSTest:
— оно должно быть public (или internal, если задан атрибут [assembly: DiscoverInternals])
- это не должно быть static
- это не должно быть универсальным
- это не должно быть abstract
— возвращаемый тип должен быть void или Task
- это не должно быть async void
— это не должен быть специальный метод, такой как финализатор или оператор.
MSTEST0005 TestContextShouldBeValidAnalyzer Свойство TestContext должно соответствовать следующему макету, чтобы быть допустимым:
- это должно являться свойством
— оно должно быть public (или internal, если задан атрибут [assembly: DiscoverInternals])
- это не должно быть static
- это не должно быть только для чтения.
MSTEST0007 АнализаторИспользованияАтрибутаНаМетодеТеста Следующие атрибуты теста должны применяться только к методам, помеченным атрибутом TestMethodAttribute:
- [CssIteration]
- [CssProjectStructure]
- [Description]
- [ExpectedException]
- [Owner]
- [Priority]
- [TestProperty]
- [WorkItem]
MSTEST0008 ТестИнициализацияДолжнаБытьКорректнымАнализатором Методы, помеченные [TestInitialize], должны соответствовать следующему формату, чтобы быть допустимыми.
- это должно быть public
- это не должно быть static
- это не должно быть универсальным
- это не должно быть abstract
— он не должен принимать какой-либо параметр
— возвращаемый тип должен быть void, Task или ValueTask
- это не должно быть async void
- это не должен быть специальный метод (метод завершения, оператор...).
MSTEST0009 ПроверкаДолжнаБытьПравильнойАнализатором Методы, помеченные [TestCleanup], должны соответствовать следующему формату, чтобы быть допустимыми.
- это должно быть public
- это не должно быть static
- это не должно быть универсальным
- это не должно быть abstract
— он не должен принимать какой-либо параметр
— возвращаемый тип должен быть void, Task или ValueTask
- это не должно быть async void
- это не должен быть специальный метод (метод завершения, оператор...).
MSTEST0010 АнализаторИнициализацииКлассаДолженБытьДопустимым Методы, помеченные [ClassInitialize], должны соответствовать следующему формату, чтобы быть допустимыми.
- это должно быть public
- это должно быть static
- это не должно быть универсальным
— он должен принимать один параметр типа TestContext
— возвращаемый тип должен быть void, Task или ValueTask
- это не должно быть async void
- это не должен быть специальный метод (метод завершения, оператор...).
MSTEST0011 ClassCleanupShouldBeValidAnalyzer Методы, помеченные [ClassCleanup], должны соответствовать следующему формату, чтобы быть допустимыми.
- это должно быть public
- это должно быть static
- это не должно быть универсальным
— он не должен принимать какой-либо параметр
— возвращаемый тип должен быть void, Task или ValueTask
- это не должно быть async void
- это не должен быть специальный метод (метод завершения, оператор...).
MSTEST0012 Активатор проверки должен быть корректным для инициализации сборки Методы, помеченные [AssemblyInitialize], должны соответствовать следующему формату, чтобы быть допустимыми.
- это должно быть public
- это должно быть static
- это не должно быть универсальным
— он должен принимать один параметр типа TestContext
— возвращаемый тип должен быть void, Task или ValueTask
- это не должно быть async void
- это не должен быть специальный метод (метод завершения, оператор...).
MSTEST0013 Анализатор_ДолженБыть_КорректнойОчисткойСборки Методы, помеченные [AssemblyCleanup], должны соответствовать следующему формату, чтобы быть допустимыми.
- это должно быть public
- это должно быть static
- это не должно быть универсальным
— он не должен принимать какой-либо параметр
— возвращаемый тип должен быть void, Task или ValueTask
- это не должно быть async void
- это не должен быть специальный метод (метод завершения, оператор...).
MSTEST0014 АнализаторДолженБытьДопустимойСтрокойДанных Экземпляры [DataRow] должны соответствовать следующей структуре, чтобы быть допустимыми.
— они должны быть заданы только в методе тестирования.
— число аргументов должно соответствовать количеству параметров метода
— тип аргумента должен соответствовать типу аргумента метода
MSTEST0017 AssertionArgsShouldBePassedInCorrectOrder Аргументы утверждения должны передаваться в правильном порядке
MSTEST0018 АнализаторДолженБытьДинамическимиДаннымиЭффективен Методы, помеченные [DynamicData], также должны быть помечены [TestMethod] (или производным атрибутом).
MSTEST0023 DoNotNegateBooleanAssertionAnalyzer Не отменяйте логические утверждения
MSTEST0024 DoNotStoreStaticTestContextAnalyzer Не храните TestContext в статическом элементе
MSTEST0026 АргументыУтвержденияДолжныИзбегатьУсловногоДоступаИдентификаторПравила Избегайте условного доступа в утверждениях
MSTEST0030 Тип, содержащий тестовый метод, должен быть тестовым классом. Тип, содержащий [TestMethod], должен быть помечен [TestClass]
MSTEST0031 DoNotUseSystemDescriptionAttribute System.ComponentModel.DescriptionAttribute не действует в контексте тестов
MSTEST0032 ОбозревательВсегдаИстинныхУсловийAssert Проверить или удалить утверждение, поскольку его условие всегда истинно
MSTEST0034 UseClassCleanupBehaviorEndOfClass Использование ClassCleanupBehavior.EndOfClass с [ClassCleanup]
MSTEST0035 UseDeploymentItemWithTestMethodOrTestClassTitle [DeploymentItem] можно указать только в тестовом классе или методе теста.
MSTEST0037 UseProperAssertMethodsAnalyzer Используйте правильные методы Assert
MSTEST0038 Избегайте использования AssertAreSameWithValueTypesAnalyzer Не используйте Assert.AreSame или Assert.AreNotSame с типами значений
MSTEST0039 Используйте более новый AssertThrowsAnalyzer Используйте более новые методы Assert.Throws
MSTEST0040 Избегайте использования AssertsInAsyncVoidContextAnalyzer Не используйте утверждения внутри контекстов async void