2013-10-25 4 views
7

내가 작업하고있는 프로젝트에서 코드 적용 범위를보다 정확하게 반영하려고하지만 Entity Framework에서 생성 된 클래스와 관련하여 문제가 발생했습니다. 나는이 클래스의 생성자를 적용 범위 통계에서 제외하고 싶습니다. 예를 들어 기대했던대로 클래스를 재생성하는 T4 템플릿에 ExcludeFromCodeCoverage 특성을 추가했습니다. TeamCity 7의 dotCover로 ExcludeFromCodeCoverage 특성

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 .../AttributeFilters = System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute'를 사용해야합니다. 다음과 같이'- :'구문을 사용하지 않아도됩니다. '/ Filters ='매개 변수. –