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)
1202정성태12/21/201126001오류 유형: 144. The database '...' cannot be opened because it is version 661.
1201정성태12/14/201141095디버깅 기술: 47. .NET Reflector를 이용한 "소스 코드가 없는" 어셈블리 디버깅 [4]
1200정성태12/11/201126946디버깅 기술: 46. Windbg 확장 DLL 만들기 (2) - Debugger Extension API 사용파일 다운로드1
1199정성태12/11/201128355VC++: 55. JNI DLL 컴파일 시 x86과 x64의 Export된 함수의 이름이 왜 다를까요? [2]파일 다운로드1
1198정성태12/9/201132166디버깅 기술: 45. Windbg 확장 DLL 만들기 (1) - 스레드를 강제 종료시키는 명령어 [2]파일 다운로드1
1197정성태12/9/201129927.NET Framework: 282. Shader 강좌와 함께 배워보는 XNA Framework (2) - RenderMonkey의 Shader/Model 파일 연동파일 다운로드2
1196정성태12/9/201133122.NET Framework: 281. Shader 강좌와 함께 배워보는 XNA Framework (1) - 기초 프로그램 구조 [3]파일 다운로드2
1195정성태12/8/201147782오류 유형: 143. DXSDK_Jun10.exe 설치 시 "Error Code: S1023" 오류 해결하는 방법 [4]
1194정성태12/8/201135534개발 환경 구성: 137. Visual C++ 런타임 구성요소에 대한 디버그 버전 설치하는 방법
1193정성태12/8/201122582오류 유형: 142. Windows Phone SDK 7.1 설치 시 Expression Blend 제거를 요구하는 경우
1192정성태12/8/201125596개발 환경 구성: 136. Windows 7 SP1의 IIS에서 사용자 프로파일을 로드하는 방법
1191정성태12/6/201126724.NET Framework: 280. MVC3에서 JavaScriptSerializer 재정의하는 방법파일 다운로드1
1190정성태12/6/201129886오류 유형: 141. Visual C++ 컴파일 오류 - error C2275: 'xxxxx' : illegal use of this type as an expression [1]
1189정성태12/6/201136998VS.NET IDE: 70. Visual Studio에서 프로젝트 로드가 안된다면?
1188정성태12/3/201126097개발 환경 구성: 135. 마이크로소프트 TFS 호스팅 서비스 - Preview [3]
1187정성태12/2/201130757개발 환경 구성: 134. Robocopy 오류 및 종료 코드
1186정성태12/1/201132590.NET Framework: 279. WPF - 그리기 성능 및 Blurring 문제파일 다운로드1
1185정성태11/29/201123385.NET Framework: 278. WPF - Content의 Changed 이벤트에 해당하는게 뭔가요?파일 다운로드1
1184정성태11/29/201126169.NET Framework: 277. F#과 WPF가 어울리지 못하는 근본적인 이유 [2]
1183정성태11/26/201121637오류 유형: 140. Visual Studio 2010 - Floating된 에디트 윈도우가 사라지지 않는 경우 [2]
1182정성태11/25/201157394.NET Framework: 276. 중복 없는 숫자를 랜덤으로 배열하는 방법 [5]파일 다운로드1
1181정성태11/24/201127857디버깅 기술: 44. windbg의 mscordacwks DLL 로드 문제
1180정성태11/23/201137671.NET Framework: 275. 레지스트리 등록 및 Interop DLL 없이 COM 개체 사용하는 방법 [2]파일 다운로드1
1179정성태11/22/201128276.NET Framework: 274. ReaderWriterLockSlim은 언제 쓰는 걸까요? [4]파일 다운로드1
1178정성태11/19/201124746.NET Framework: 273. 설치된 .NET 버전에 민감한 코드를 포함하는 경우, 다중으로 어셈블리를 만들어야 할까요?파일 다운로드1
1177정성태11/18/201130003.NET Framework: 272. 소켓 연결 시간 제한 - 두 번째 이야기 [1]파일 다운로드1
... 151  152  153  [154]  155  156  157  158  159  160  161  162  163  164  165  ...