2011-09-30 2 views
5

중단 점을 설정하고 원시 C++과 관리되는 C++의 혼합 프로젝트에서 NUnit을 사용하여 단계를 밟을 수 있습니까?NUnit을 사용하여 VS 2010에서 네이티브/매니지드 C++ 디버깅

정적 라이브러리 (기본 C++)로 구성된 SUT (소프트웨어 테스트 중) 내 단위 테스트 제품군을 이전에 언급 한 라이브러리에 따라 달라지는 별도의 프로젝트로 구성했습니다. 또한 라이브러리를 내 단위 테스트 프로젝트에 대한 참조로 추가했습니다.

내 테스트는 NUnit에서 정상적으로 실행되지만 중단 점은 작동하지 않습니다.

다시 말하지만 Native/Managed C++에서 NUnit을 사용하여 중단 점을 얻는 방법이 있습니까?

+0

C++/CLI (Managed C++)를 사용하지 않고 테스트중인 코드의 경우 일반 C++ 테스트 프레임 워크를 사용하지 않는 이유는 무엇입니까? NUnit을 사용할 필요가 있습니까? – Daemin

+0

@Daemin, C#으로 시작하는 코드가 있고 네이티브로 끝나는 경우 두 경로로 동일한 경로를 테스트하는 이유는 무엇입니까? C#은 관리되는 C++ 브릿지를 통해 비 관리 대상으로 넘길 수 있습니다. – devshorts

+0

@devshorts 설명에서 이미 테스트 할 원시 C++ 정적 라이브러리가 있지만 C# 테스트가 작성되었습니다. C# 테스트 프레임 워크를 사용하여 네이티브 C++ 코드를 테스트하는 것이 이상하게 보입니다. – Daemin

답변

1

이 작업을 수행하는 가장 편리한 방법은 NUnit의 경로를 명령으로 지정하는 사용자 지정 도구 항목을 설정하는 것입니다. VS2003 C# 프로젝트의 경우 인수에 $ (TargetPath)을 사용하고 초기 디렉터리에는 $ (TargetDir)을 사용할 수 있습니다.

Visual Studio VS2005에서는 '대상'매크로의 의미가 변경되어 'bin'디렉터리 중 하나의 최종 출력이 아니라 중간 'obj'디렉터리를 가리키기 때문에이 버전이 조금 더 어려워졌습니다. . 다음은 두 버전 모두에서 작동하는 몇 가지 대안입니다. 어셈블리가 아닌 VS 프로젝트를 열려면

$ (ProjectDir) $ (ProjectFileName)을 엽니 다. 이 방법을 사용하는 경우 구성 파일의 이름을 적절하게 바꾸고 VS 프로젝트 파일과 동일한 디렉토리에 저장하십시오.

$ (ProjectDir) bin/Debug/$ (TargetName) $ (TargetExt) 조립품을 직접 실행하려면. 이 작업에는 구성을 포함하여 경로의 일부를 하드 코딩해야합니다.

테스트를 디버그하려면 Visual Studio 디버그 | 프로세스 ... 메뉴 항목을 시작한 후 NUnit에 첨부하고 테스트를 실행하기 전에 원하는대로 테스트 코드에 중단 점을 설정하십시오.

+0

C#이 아닌 C++로 작동하도록 중단 점을 얻으려고합니다. 또한 테스트를 실행할 때 VS를 NUnit에 연결해도 중단 점에서 멈추지 않습니다. – NexAddo

관련 문제