Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Правила подавления автоматически подавляют диагностику из других анализаторов (таких как Roslyn или анализаторы потоков Visual Studio), которые не применяются в контексте тестов MSTest.
Правила в этой категории
| Идентификатор правила | Название | Подавляет |
|---|---|---|
| MSTEST0027 | Убрать асинхронный суффикс у тестовых методов. | VSTHRD200 |
| MSTEST0028 | Подавляйте асинхронный суффикс для методов тестовых фикстур. | VSTHRD200 |
| MSTEST0033 | Запретить ссылку, не допускаемую значение NULL, не инициализированную. | CS8618 |
Как работают правила подавления
Эти правила не создают собственную диагностику. Вместо этого подавляются предупреждения от других анализаторов, которые иначе срабатывали бы некорректно в тестовом коде.
VSTHRD200. Используйте суффикс 'Async' для асинхронных методов
Подавлено: MSTEST0027, MSTEST0028
Почему подавлять: анализатор потоков Visual Studio (VSTHRD200) рекомендует, чтобы асинхронные методы должны иметь суффикс 'Async'. Однако методы тестирования и методы тестовых приспособлений обнаруживаются MSTest с использованием атрибутов, а не соглашений об именовании. Добавление суффиксов Async в имена методов тестирования (например, TestLoginAsync) не предоставляет значения и может сделать имена тестов менее читаемыми.
Пример:
[TestMethod]
public async Task TestLogin() // VSTHRD200 would warn without suppression
{
await LoginAsync();
// ...
}
CS8618: Ненулевой ссылочный тип не инициализирован
Подавляется: MSTEST0033
Зачем подавлять: при использовании ссылочных типов, допускающих значение NULL, компилятор предупреждает о ненуляемых свойствах, которые не инициализированы в конструкторах. Однако MSTest автоматически инициализирует TestContext свойство перед выполнением любых методов тестирования, поэтому предупреждение не применяется.
Пример:
[TestClass]
public class MyTests
{
public TestContext TestContext { get; set; } = null!; // CS8618 would warn without suppression
[TestMethod]
public void TestSomething()
{
// TestContext is guaranteed to be non-null here
TestContext.WriteLine("Test output");
}
}
Отключение правил подавления
Если вы предпочитаете видеть эти предупреждения, отключите правила подавления в следующих .editorconfigпараметрах:
[*.cs]
dotnet_diagnostic.MSTEST0027.severity = none
dotnet_diagnostic.MSTEST0028.severity = none
dotnet_diagnostic.MSTEST0033.severity = none