Ответ 1
Я думаю, что это невозможно, поскольку harlam357 уже сказал.
Я использую подчеркивания для своих методов тестирования для лучшей читаемости, и я хочу подавить ошибки/предупреждения FxCop для всего пространства имен теста.
Как мне этого добиться? Я играл с GlobalSuppressions.cs
но ничего не GlobalSuppressions.cs
:
[module: System.Diagnostics.CodeAnalysis.SuppressMessage(
"Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores",
Scope = "namespace", Target = "Company.Product.Tests")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage(
"Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores",
Scope = "namespace", Target = "Company.Product.Tests")]
Я думаю, что это невозможно, поскольку harlam357 уже сказал.
Начиная с Visual Studio 2019 возможно подавление предупреждения анализа кода для пространства имен и всех его дочерних символов:
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage(
"Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores",
Justification = "Test methods require underscores for readability."
Scope = "namespaceanddescendants", Target = "Company.Product.Tests")]
Область действия - цель, для которой предупреждение подавляется. Если цель не указана, она устанавливается в качестве цели атрибута. Поддерживаемые области включают следующее:
...
namespaceanddescendants
- (Новое в Visual Studio 2019) Эта область подавляет предупреждения в пространстве имен и во всех его дочерних символах. Значениеnamespaceanddescendants
действительно только для анализаторов Roslyn и игнорируется двоичным статическим анализом на основе FxCop.
Подавить предупреждения анализа кода # Атрибут SuppressMessage @MS Docs
Да, это невозможно с FxCop <= 10.0.
Что вы можете сделать, это отключить CA1707 с помощью файла настраиваемых правил (возможно, только для ваших тестовых проектов).
Как уже говорилось, это невозможно из коробки. Imho, он предназначен, потому что подавление должно выполняться унитарно.
Существует обходное решение для этого вручную с помощью FXCop 10
с функциональностью Copy As > Module-level SuppressMessage
.
Минусы, вам придется повторять это каждый раз, когда пространство имен будет изменено, но, как уже было сказано, глобальные запреты должны быть изолированы.
Copy As > Module-level SupressMessage
GlobalSuppressions.cs
, напримерПримечание. Это можно сделать при сборке, пространстве имен или уровне.