2017-01-31 5 views
8

현재 nunit3.console.exe를 실행중인 OpenCover 세션을 실행 중입니다.속도 향상 openCover

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -output:"%CD%\opencover.xml" -register:user -target:"C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" -targetargs:"Solution\our-solution-file.sln --config=Debug --result=%CD%\TestResult.xml;format=nunit2" 
exit 0 

우리는하지만 그 정도,이 사이에 의한 계측에 우리의 일반적인 단위 테스트보다 느린 것으로 기대하고 있었다 :

우리의 명령 줄은 다음과 같다.

코드 범위가 없으면 단위 테스트는 1h와 비슷합니다. 현재 코드 적용 범위를 통해 3 일 23 시간을 소비했으며 10 % 만 실행했다고 생각합니다.

그 결과는 SonarQube로 내 보내야합니다.

테스트를 실행하는 컴퓨터를 업그레이드하는 것 외에 속도를 향상시킬 수있는 방법이 있습니까? 어쨌든 수행됩니다.

덜 구체적인 결과가있는 것처럼 ...? 우리는 주로 코드 적용 범위, 기간 및 기타 항목에 관심이 많습니다. 심지어 OpenCover 이외의 다른 도구를 사용합니다.

이 문제가 중요할지 모르겠지만이 줄은 젠킨스에 의해 실행됩니다.

+0

60 배의 둔화가 크게 말도 : 나는 필터를 어떻게했는지 방식에 의해,

. 하지만이 SO 응답은 OpenCover의 속성이라고 제안합니다. http://stackoverflow.com/a/26225013/120163 스레드와 대기열을 사용하는 것에 대한 언급은 꽤 놀랍습니다. 그것들은 도구의 런타임 코어의 일부인 경우 매우 느린 메커니즘입니다. 실행에 15-20 %의 추가 오버 헤드를 추가하는 좋은 테스트 커버리지 도구가 필요할 것입니다. . Semantic Designs (내 회사) 도구에는이 속성이 있습니다. (바이오 참조). –

답변

2
내가 큰 개선을 통지 한 몇 가지 노력으로

:

나는 openCover 계측의 시험 어셈블리를 제외, 그리고 지금 공연은 아주 좋은입니다 만 UnitTests + SonarQube와

  • 2006 년 상반기 OpenCover + UnitTests와

  • 1h38 + SonarQube

,

이것은 우리에게 상당히 받아 들여집니다.

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -filter:"[*]* -[*.Test]*" -output:"%CD%\opencover.xml" -register:user -target:"C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" -targetargs:"Solution\our-solution-file.sln --config=Debug --result=%CD%\TestResult.xml;format=nunit2" 
exit 0 
+0

뭐가 잘못 됐는지 모르겠지만 이제는 똑같은 커맨드 라인이 영원히 다시 걸립니다. VM에있는 사실로 인해 한 번 더 많은 리소스를 얻었을 수도 있습니다. – J4N