我試圖禁用整個類的代碼分析規則,但不是整個項目,只有一個類。在下面的示例中,構建生成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
不幸的是,你不能這樣做 - 抑制必須始終適用於報告警告/錯誤的級別,所以如果這是一種方法,那麼只能抑制該方法的警告。 –