コード全体を解析するルールを無効にしようとしていますが、プロジェクト全体ではなく、1つのクラスでのみ無効にしようとしています。以下の例では、ユニットテストメソッドが静的であると考えているため、ビルドによってCA1822警告が生成されます。特定のコード解析を無効にする方法クラス全体に対して警告
修正は、各ユニットテストメソッドに次の属性を追加することです: [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
しかし、それは多くのユニットテストを持つクラスを面倒だとクラッタ。
私が試してみた:
- は
#pragma warning disable CA1822
#pragma warning restore CA1822
どちらもこれら二つの中でクラスメソッドのすべてをラッピング
public class TestClass
{
public TestClass()
{
// some setup here
}
[Fact]
public void My_Unit_Test1()
{
// the 'this' parameter is never used, causes CA warning 1822
}
[Fact]
public void My_Unit_Test2()
{
// the 'this' parameter is never used, causes CA warning 1822
}
}
VS2015 Update 2、.net 4.61、および新しいコード解析アナライザを使用する。
このテストでは、単体テストプロジェクトで異なるコード分析ルールセットを使用しました。私はユニットテストプロジェクトには適用されなかったルールを無効にしました。 –
@MatthewWatson - 私はテストプロジェクトにも別のルールセットを使用します。このケースでは、ルールを自分の単体テストプロジェクトに適用したいと思います。単なる特定のクラスではありません。 – SFun28
残念ながら、これを行うことはできません。警告は常に警告/エラーが報告されるレベルに適用される必要があります。その場合、そのメソッドの警告のみを抑制することができます。 –