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


MSTEST0001. Явное включение или отключение параллелизации тестов

Свойство Значение
Идентификатор правила MSTEST0001
Заголовок Явное включение или отключение параллелизации тестов
Категория Производительность
Исправление является критическим или не критическим Не критическое
Включен по умолчанию Да
Серьезность по умолчанию Сведения
Представлено в версии 3.2.0
Есть ли исправление кода No

Причина

Сборка не помечена или [assembly: Parallelize][assembly: DoNotParallelize] атрибутом.

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

По умолчанию MSTest выполняет тесты в одной сборке последовательно, что может привести к серьезным ограничениям производительности. Рекомендуется включить параллельное выполнение тестов атрибута [assembly: Parallelize] сборки или, если сборка, как известно, не является параллелизируемой, для явного использования атрибута [assembly: DoNotParallelize]уровня сборки.

Конфигурация [assembly: Parallelize] по умолчанию эквивалентна [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)], то есть параллелизация будет задана на уровне класса (не на уровне метода) и будет использовать максимальное количество потоков (в зависимости от внутренней реализации).

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

Чтобы устранить нарушение этого правила, добавьте [assembly: Parallelize] или [assembly: DoNotParallelize] атрибут. Рекомендуется использовать [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] оптимальную параллелизацию.

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

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

Подавление предупреждения

Нарушения этого правила нельзя отключить непосредственно в коде.

Чтобы отключить правило для файла, папки или проекта, задайте его серьезность в файле конфигурации.

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0001.severity = none

Дополнительные сведения см. в статье Подавление предупреждений анализа кода.