読みやすさを向上させるためにテストメソッドにアンダースコアを使用し、テスト名前空間全体のFxCopエラー/警告を抑制したいと考えています。
どうすればこれを達成できますか? 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")]
スコープ-警告が抑制されているターゲット。ターゲットが指定されていない場合は、属性のターゲットに設定されます。サポートされているスコープは次のとおりです。
---(コード分析の警告を抑制します#SuppressMessage属性@ MSドキュメント
はい、それはFxCop <= 10.0では不可能です。
できることは、カスタムルールファイルを使用してCA1707を無効にすることです(おそらくテストプロジェクトのためだけに)。
すでに述べたように、箱から出してそれは不可能です。イムホ、抑制は一元的に行わなければならないので意図されています。
FXCop 10
機能を使用してCopy As > Module-level SuppressMessage
を介してこれを手動で行う回避策があります。
短所、名前空間が変更されるたびにこれを繰り返す必要がありますが、すでに述べたように、グローバル抑制は分離する必要があります。
Copy As > Module-level SupressMessage
GlobalSuppressions.cs
に貼り付けます注:これは、アセンブリ、名前空間、またはタイプレベルで実行できます。