我试图在整个类中禁用代码分析规则,但不是整个项目,只是一个类。在下面的示例中,构建生成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和新的代码分析分析器。
答案 0 :(得分:1)
这不是你想要的,但可能比你的情况要小。
您可以告诉代码分析忽略具有以下属性的特定类:
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
请注意,您的项目需要选中“从生成的代码中抑制结果(仅限托管)”的Visual Studio选项。
虽然很烦人,但如果暂时注释属性,仍然可以选择对文件运行代码分析。
答案 1 :(得分:1)
右键单击错误列表选项卡下的错误,您可以选择“在源中”和“在抑制文件中”。
如果选择“In Source”,SuppressMessageAttibute将被添加到源代码(方法或类级别)。
'[assembly:SUppressMessage'将被添加到GlobalSupressions.cs文件中,您可以配置该属性的'Target'。
答案 2 :(得分:1)
单击灯泡图标[?]或按fig.patch.set_alpha(0.0)
+ fig, (axe0, axe1) = plt.subplots(nrows=2, sharex=True)
axe0.scatter(x, y0, c='k')
axe0.set_facecolor('red')
axe1.scatter(x, y1, c='k')
axe1.set_facecolor('blue')
dst = op.join(op.expanduser('~'), 'Desktop', 'Temp.png')
fig.patch.set_alpha(0.0)
fig.savefig(dst, format='png')
plt.show()
组合键。这应该打开一个像波纹管这样的上下文菜单。
然后在抑制文件菜单项中选择抑制或配置问题> 抑制XXX > 。如果不存在,它将创建Ctrl
文件,并在其中添加新行。
默认情况下,它将仅抑制对选定成员的警告(方法)。您可以将Scope
更改为.
,并将Target
更改为完整的班级名称(例如:GlobalSuppression.cs
)。
这是一个例子:
type