Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

OpenCover 소스 코드 분석을 Visual Studio 2013에서 하는 방법

OpenCover가 꽤나 잘 만들어진 .NET Profiler의 한 사례라서 자꾸만 보게 되는군요. ^^

혹시 분석하고 싶은 분들이 계시다면, 기왕이면 Visual Studio내에서 Breakpoint를 걸어가며 테스트하는 것이 훨씬 도움이 되기 때문에 기록을 남겨봅니다.

우선, github에 공개된 프로젝트를 로드하기 위해서는 다음의 준비물들이 필요합니다.

  1. Visual Studio VS2013 (Community Edition) or later with C# and C++
  2. WiX 3.9 or later (http://wix.codeplex.com/releases/view/136891)
  3. Specflow (http://visualstudiogallery.msdn.microsoft.com/9915524d-7fb0-43c3-bb3c-a8a14fbd40ee)

이 중에서 3번 Sepcflow는 2013용으로 따로 링크가 있으므로 이것을 다운로드 받아야 합니다.

SpecFlow for Visual Studio 2013 
; https://visualstudiogallery.msdn.microsoft.com/90ac3587-7466-4155-b591-2cd4cc4401bc

부가적으로, OpenCover.Console.exe가 2차 프로세스를 실행하는 방식이므로 디버깅을 위해서는 다음의 도구도 다운로드 받아야 합니다.

Microsoft Child Process Debugging Power Tool
; https://visualstudiogallery.msdn.microsoft.com/a1141bff-463f-465f-9b6d-d29b7b503d7a

이걸로 설치 준비는 되었고.

이제, Visual Studio 2013에서 Tools / Options 메뉴에서 "Source Control"의 "Current source control plug-in"을 "Microsoft Git Provider"로 변경시켜줍니다. 그런 후, "Team Explorer" 창에서 "Clone" 링크를 이용해 다음의 GIT 리포지터리를 내려받습니다. (또는, 그냥 자신의 것으로 Fork하는 것도 좋겠고!)

https://github.com/OpenCover/opencover.git

모두 내려받은 후에는 루트 폴더에 있는 Build.bat 파일을 명령행에서 한번 실행해 줍니다. 그럼, 각종 환경 구성과 함께 빌드를 합니다. 이후, Visual Studio 2013에서 /Main/OpenCover.sln 파일을 불러오면 됩니다.

마지막으로 디버깅 환경을 구성해 주는데요. 예제 프로그램을 위해 제 경우에는 \samples\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe로 두었고,
OpenCover.Profiler 프로젝트 속성 창에서 다음과 같이 디버깅 설정을 해줬습니다.

Command:            $(OutDir)..\OpenCover.Console.exe
Command Arguments:  -target:$(SolutionDir)..\samples\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe -register:user -filter:+[*]*
Working Directory:  $(OutDir)..

그다음 F5 키를 누르면 이제부터 BP(Breakpoint) 디버깅을 이용한 프로그램 분석이 가능합니다. 이렇게!

open_cover_build_1.png

조금 헤매다 보면... OpenCover의 흐름이 보일 것입니다. ^^




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/28/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2015-03-10 02시25분
조금 어렵지만 좋은정보 감사합니다!
김선우

... 151  152  153  154  155  156  157  [158]  159  160  161  162  163  164  165  ...
NoWriterDateCnt.TitleFile(s)
1099정성태8/15/201128257오류 유형: 132. 어느 순간 갑자기 접속이 안 되는 TFS 서버
1098정성태8/15/201150339웹: 24. 네이버는 어떻게 로그인 처리를 할까요? [2]
1097정성태8/15/201121640.NET Framework: 235. 메서드의 메타 데이터 토큰 값으로 클래스를 찾아내는 방법
1096정성태8/15/201125772디버깅 기술: 42. Watson Bucket 정보를 이용한 CLR 응용 프로그램 예외 분석 - (2)
1095정성태8/14/201126158디버깅 기술: 41. Windbg - 비정상 종료된 닷넷 프로그램의 StackTrace에서 보이는 offset 값 의미
1094정성태8/14/201130604오류 유형: 131. Fiddler가 강제 종료된 경우, 웹 사이트 방문이 안되는 현상
1093정성태7/27/201124179오류 유형: 130. Unable to connect to the Microsoft Visual Studio Remote Debugging Monitor ... Access is denied.
1092정성태7/22/201126624Team Foundation Server: 46. 코드 이외의 파일에 대해 소스 제어에서 제외시키는 방법
1091정성태7/21/201125657개발 환경 구성: 128. WP7 Emulator 실행 시 audiodg.exe의 CPU 소모율 증가 [2]
1089정성태7/18/201131229.NET Framework: 234. 왜? Button 컨트롤에는 MouseDown/MouseUp 이벤트가 발생하지 않을까요?파일 다운로드1
1088정성태7/16/201124254.NET Framework: 233. Entity Framework 4.1 - 윈도우 폰 7에서의 CodeFirst 순환 참조 문제파일 다운로드1
1087정성태7/15/201126999.NET Framework: 232. Entity Framework 4.1 - CodeFirst 개체의 직렬화 시 순환 참조 해결하는 방법 - 두 번째 이야기파일 다운로드1
1086정성태7/14/201128372.NET Framework: 231. Entity Framework 4.1 - CodeFirst 개체의 직렬화 시 순환 참조 해결하는 방법 [1]파일 다운로드1
1085정성태7/14/201128890.NET Framework: 230. Entity Framework 4.1 - Code First + WCF 서비스 시 EndpointNotFoundException 오류 - 두 번째 이야기파일 다운로드1
1084정성태7/11/201134159.NET Framework: 229. SQL 서버 - DB 테이블의 데이터 변경에 대한 알림 처리 [4]파일 다운로드1
1083정성태7/11/201128204.NET Framework: 228. Entity Framework 4.1 - Code First + WCF 서비스 시 EndpointNotFoundException 오류
1082정성태7/10/201127743.NET Framework: 227. basicHttpBinding + 사용자 정의 인증 구현 [2]파일 다운로드1
1081정성태7/9/201127075VC++: 53. Windows 7에서 gcc.exe 실행 시 Access denied 오류 [2]
1080정성태7/8/201125583웹: 23. Sysnet 웹 사이트의 HTML5 변환 기록 - 두 번째 이야기파일 다운로드1
1079정성태7/6/201130005오류 유형: 129. Hyper-V + Realtek 랜카드가 설치된 시스템의 BSOD 현상 [2]
1078정성태7/5/201137478VC++: 52. Chromium 컴파일하는 방법 [2]
1077정성태6/24/201135106.NET Framework: 226. HttpWebRequest 타입의 HaveResponse 속성 이야기파일 다운로드1
1076정성태6/23/201129297오류 유형: 128. SQL Express - User Instance 옵션을 사용한 경우 발생하는 오류 메시지 유형 2가지
1075정성태6/21/201124862VS.NET IDE: 69. 윈폰 프로젝트에서 WCF 서비스 참조할 때 Reference.cs 파일이 비어있는 경우
1074정성태6/20/201124987.NET Framework: 225. 닷넷 네트워크 라이브러리의 트레이스 기능파일 다운로드1
1073정성태6/20/201127212오류 유형: 127. Visual Studio에서 WCF 서비스의 이름 변경 시 발생할 수 있는 오류
... 151  152  153  154  155  156  157  [158]  159  160  161  162  163  164  165  ...