2013-10-25 58 views
7

我試圖更準確地反映代碼覆蓋率在我正在處理的項目中,但遇到實體框架生成的類時遇到了問題。我希望從覆蓋率統計中排除這些類的構造函數,因此我已經將ExcludeFromCodeCoverage屬性添加到T4模板,該模板按照我的預期重新生成類。ExcludeFromCodeCoverage屬性與TeamCity 7中的dotCover

using System.Diagnostics.CodeAnalysis; 

public partial class Address 
{ 
    [ExcludeFromCodeCoverage] 
    public Address() 
    { 
     this.Person = new HashSet<Person>(); 
    } 

    ... 
} 

我試圖在方法的水平存在包含需要被測試,幷包含在代碼覆蓋統計定製邏輯一些部分類添加此。

從我已閱讀ExcludeFromCodeCoverage應使用dotCover時被自動排除,但我不知道如果通過的TeamCity運行時,這是真實的,所以我包括在Attribute filter syntax for code coverage in TeamCity提到的過濾器(試圖既ExcludeFromCodeCoverageExcludeFromCodeCoverageAttribute)與沒有運氣。

謝謝

回答

13

我有和你一樣的TeamCity版本。這對我來說可以。你應該檢查你的配置是否正確。

您應該在屬性篩選器中指定屬性名稱:部分。你的情況的文字應該是:

-:System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

已標記成員不應顯示(上課)或標記爲綠色/紅色您在TeamCity的覆蓋報告。

更多的指令可以發現here

我有類似的問題。我排除的覆蓋生成的類加入到我的「代碼覆蓋率」構建步驟:

-:assembly=<assembly name>*;type=*<part of generated classname>*;method=*

+0

,該註釋不直接相關的TeamCity&DotCover,但對於使用'DotCover.exe'命令行的,爲了排除標有'ExcludeFromCodeCoverage'屬性的代碼,你應該使用下面的'dotCover.exe analyze .../AttributeFilters = System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute',你不需要' - :'語法'/ Filters ='參數。 –

相關問題