2014-11-13 1 views
2

나는 인 TeamCity에서 CI 용으로 설정된 프로젝트를, 그리고 코드 커버리지에 대한 몇 가지 이상한 결과를 보여주는 것 :인 TeamCity 코드 커버리지 예기치 않은 결과가

enter image description here

참고 클래스의 중복을. 문제 그래서 여기

public abstract class BaseRepository<T> : BaseRepository<T, long> where T : class 
    { 
     protected BaseRepository(ISessionManager sessionManager) 
     : base(sessionManager) 
     { 
      //nothing in here. 
     } 
} 

것 : 이 덮여이 코드 이러한 클래스 중 하나를 보면

, 다음과 같이 "이 적용되지"로 강조 코드가 (이 클래스에있는 유일한 코드입니다) 하지만 TeamCity가 세 번이나 적용 범위를 한 번만 계산하기 때문에 33 %의 적용 범위를 얻었 기 때문에 생각합니다. 올바른 것은 아닙니다.

누구나 여기서 어떤 일이 일어나고 있는지, 어떻게 고칠 수 있는지 제안 할 수 있습니까?

+0

어떤 서비스 엔진을 사용합니까? –

+0

@OlegRybak 내장 dotCover 제품. –

+0

각 클래스의 인스턴스가 3 개 있습니까? –

답변

3

여러 위치에서로드 된 중복 테스트 컨테이너 dll 파일과 비슷한 문제가있었습니다.

테스트 러너 구성에서 Run tests fromDo not run tests from 섹션을 확인하고 dll이 여러 번로드 된 이유를 알아야합니다. 내 경우에는 그것은 obj 폴더, 그리고처럼 내 Edit assembly files exclude list 지금 보이는 : 당신은이 배 가지고

**\obj\**\*.dll 

, 그래서 당신은 아마 제외 더욱 위치를 파악해야합니다.

+0

Lovely ... 이것에 대해 살펴 보겠습니다. 고마워요. –

+0

+1 우리는 obj 폴더에있는 파일과 동일한 문제가 있습니다. –

+1

그래서, 저에게 이것은 어셈블리 포함에서 과도하게 느슨한 와일드 카드 조합과 다른 빌드 구성을 사용하는 다양한 테스트였습니다. 우리는 어셈블리에 대한 경로와 패턴을 정리하고 문제가 사라졌습니다. 감사! –

관련 문제