내 컴퓨터에서 OpenCover가 작동되면 다음 단계로 빌드 서버와 함께 작동하게됩니다.OpenCover MSBuild 통합 - 결과가 생성되지 않았습니다.
저는 Bamboo Build Server에서 OpenCover와 MSBuild를 통합하려고했습니다. 솔루션을 구축 한 후 OpenCover 실행하려면 다음과 같이 나는 Build.proj을 수정 한 :
<Target Name="TestAndCodeCoverage" DependsOnTargets="Build" >
<Message Text="Executing Unit Tests and running OpenCover to check code coverage..." />
<MakeDir Directories="Coverage" />
<Exec Command='"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -target:"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe" -targetargs:/testcontainer:"TestProject\bin\Release\TestProject.dll" -filter:+[*]* -output:Coverage\CodeCoverageResults.xml -register:user -mergebyhash' />
</Target>
은 "범위"디렉토리 (작업 디렉토리는 빌드 중입니다) 솔루션의 루트 디렉토리에 생성됩니다. 테스트가 실행되고 모두 통과하지만 빌드 로그에 Committing....
이 표시되면 (명령 줄에 표시되는 내용) 결과가 생성되지 않고 빌드가 다음 태스크로 이동합니다 (ReportGenerator로 보고서 작성 - 실패 함). CodeCoverageResults.xml이 작성되지 않았으므로).
빌드 시스템의 명령 줄에서 동일한 명령을 실행하면 모든 것이 예상대로 작동하며 ReportGenerator에서 보고서를 생성 할 수 있습니다.
다른 누구도 동일한 문제가 있습니까? PartCover 예제와 같은 dll을 this처럼 등록해야합니까?
두 개의 프로파일 러 등록 - 감사합니다! – Jack
내 문제를 해결하려고하는 것처럼 들리지만, register 플래그가 나를 위해 무엇을하는지, 그리고 이것이 작동하려면 왜 필요한지에 대한 설명으로 할 수 있습니다. 건배 –
프로파일 러는 COM 개체이므로 레지스트리에 등록해야합니다. 이제는 호스트 (콘솔)가 -register 스위치를 사용하여 (또는 관리자가 아닌 계정이나 UAC 제한 사항에 따라 -register : user를 사용하여) 이렇게하거나 regsvr32 유틸리티를 사용할 수 있습니다. 빌드 머신에서 나는 프로파일 러를 설치 한 후 후자를 선호하며 여러 버전의 프로파일 러에 의해 프로파일 링되는 여러 빌드가있는 경우에만 -register 스위치 만 사용합니다. HTH –