我试图禁用整个类的代码分析规则,但不是整个项目,只有一个类。在下面的示例中,构建生成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和新的Code Analysis Analyzers。
我通过使用不同的代码分析规则集的单元测试项目,解决了这个(等)的问题。我关闭了不适用于单元测试项目的规则。 –
@MthetheWWatson - 我也为测试项目使用了不同的规则集。在这种情况下,我希望规则适用于我的单元测试项目,而不是一个特定的类。 – SFun28
不幸的是,你不能这样做 - 抑制必须始终适用于报告警告/错误的级别,所以如果这是一种方法,那么只能抑制该方法的警告。 –