IT Share you

TeamCity에서 dotCover가 적용되지 않도록 유형 및 방법을 제외하려면 어떻게합니까?

shareyou 2021. 1. 8. 21:46
반응형

TeamCity에서 dotCover가 적용되지 않도록 유형 및 방법을 제외하려면 어떻게합니까?


TestDriven.Net 및 Visual Studio 커버리지 기능을 사용하여 테스트 커버리지를 확인한 기존 C # 4 프로젝트가 있습니다. 즉, 상황에 맞는 메뉴에서 Test With-> Coverage를 사용합니다.

프로젝트에는 내가 다루고 싶지 않은 일부 코드가 포함되어 있으며 [ExcludeFromCodeCoverage]해당 유형 및 메서드에 대해 를 추가하여 문제를 해결했습니다 .

방금 TeamCity를 6.0.3으로 업그레이드했으며 NUnit 빌드 단계에 dotCover 적용 범위를 추가했습니다.

"필터"섹션에서 NHibernate와 같은 외부 어셈블리에 대한 커버리지를 제거 할 수 있었지만 (내가 커버하고자하는 어셈블리를 명시 적으로 명시하여), 커버 된 어셈블리에서 유형과 메서드를 제외하는 방법을 고민하고 있습니다.

여기에 이미지 설명 입력


좋아, 마틴, 알아 냈어! 필터 구문을 무작위로 찌르는 데 1 시간 밖에 걸리지 않았습니다. 문서에서 이와 같은 필터를 추가하라고 말했을 때

+:myassembly=*;type=*;method=***

그들은 정말로 이것을 의미합니다 ... 안에있는 모든 것은 <>당신에 의해 완전히 대체되고 다른 것은 문자 그대로

+:<myassembly>;type=<filter>;method=<filter>

그래서 제가 원했던 필터는 여러 어셈블리의 단일 어셈블리를 포함시킨 다음 해당 어셈블리에서 몇 개의 네임 스페이스를 제외하는 것이 었습니다. 나는 썼다

+:Omnyx.Scanner
-:Omnyx.Scanner;type=Omnyx.Scanner.Simulation.*
-:Omnyx.Scanner;type=Omnyx.Scanner.ToolsCommon.*

dotCover 팁 및 요령 페이지를 살펴보십시오 . 전체 어셈블리를 제외한 것과 유사하게 필터 섹션에서 제외를 설정할 수있는 것 같습니다.

하자 당신이라는 방법을 무시하고 싶은 말은 DoStuff클래스에 포함 MyStuff에, MyAwesomeAssembly라이브러리를. 그러면 dotCover XML이 다음과 같이 보일 것입니다.

<Filters>
  <ExcludeFilters>
     <FilterEntry>
       <ModuleMask>MyAwesomeAssembly</ModuleMask>
       <ClassMask>MyStuff</ClassMask>
       <FunctionMask>DoStuff</FunctionMask>
     </FilterEntry>
  </ExcludeFilters>
</Filters>

면책 조항 : 나는 dotCover를 사용하지 않기 때문에 이것이 실제로 작동하는지 100 % 확신하지 못합니다.


다음은 TeamCity 문서가 필터 옵션에 대해 말하는 내용입니다.

다음 구문을 사용하여 한 줄에 하나씩 프로파일 링 할 어셈블리를 지정합니다. + : myassembly = ; type = ; method = *

-: myassembly를 사용하여 코드 적용 범위에서 어셈블리를 제외합니다. 여기서는 별표 와일드 카드 (*)가 지원됩니다.

참조 URL : https://stackoverflow.com/questions/5631533/how-do-i-exclude-types-and-methods-from-being-covered-by-dotcover-in-teamcity

반응형