2011-01-20 2 views
4

C++에서 유니 코드 테스트를 수행하는 방법을 알고있는 분이라면 Visual Studio 2010에서 작동하는 코드 적용 결과를 통해 모든 답변을 찾을 수 있습니다. 나는 테스트하고있는 프로젝트와 테스트 프로젝트를 분리하고 싶다. 프로젝트를 사용하면 VS 2010의 코드 커버리지 도구가 lib 내부에 계측 코드를 넣을 수 없으므로 정적 lib를 솔루션으로 출력 할 수 없습니다. 필자는 테스트 할 프로젝트로 dll을 시도했지만 CLR로 인해 생성 된 테스트로 제대로 연결될 수 없습니다 : 테스트를 위해 안전한 매개 변수가 설정되었습니다. 어떤 아이디어 사람? 아니면 MS는 C++ 코드 커버리지 도구를 만들 수 없습니다.코드 적용 도구 Visual Studio 2010 C++

답변

6

(전체 공개 :이 기능을 유지하는 팀에있어)

네이티브 C++ 코드 커버리지는 VS2010에 의해 지원됩니다,하지만 당신은 보았 듯이, 당신은 단지 악기 바이너리를 연결 할 수 있습니다 (예를 들어, .DLL 또는 .exe). 즉, 수집 할 코드는 측량하기 전에 이진 이미지에 링크되어야합니다.

어떤 단위 테스트 프레임 워크를 사용하고 있습니까? 테스트 프로젝트가 순수 관리 C++ (/clr:safe) 인 것 같습니다. 네이티브 C++ 프로젝트를 DLL로 빌드한다면 테스트 프로젝트는 적어도 P/Invoke 호출을 사용하여 네이티브 DLL을 호출 할 수 있어야합니다. 이렇게하면 네이티브 .lib를 테스트 프로젝트에 실제로 연결할 필요가 없습니다.

+0

현재 Microsoft에서는 단위 테스트 프레임 워크 (Microsoft :: VisualStudio :: TestTools :: UnitTesting)를 사용하고 있습니다.이 테스트는 기본적으로/clr : safe에 있습니다. 임은 여전히 ​​내 DLL에 테스트 파일을 연결하는 방법을 잘 모르겠다, 다음 게시물에서 내 testfile을 보여줍니다. 이메일을 보내 주시면 (아주 ​​기본적인 프로그램과 아주 작은) 함께 놀고있는 프로젝트를 보내 드리며 작동하지 않는다는 것을 직접 볼 수 있습니다. – user531571

+5

"VS2010에서 네이티브 C++ 코드 적용 범위를 지원합니다"<- 무엇 무엇을? –

+1

@ user531571 : StackOverflow는 사람들이 모든 것을 서로 공개 할 수 있도록 공개합니다. 질문을 편집하고 코드를 게시 할 수 있습니까? 내 대답을 수정하고 더 도움을 드리겠습니다. –

0
//MyTestfile 


#include "stdafx.h" 
#include "MathFuncsDll.h" 

using namespace System; 
using namespace System::Text; 

using namespace System::Collections::Generic; 

using namespace Microsoft::VisualStudio::TestTools::UnitTesting; 

namespace anothertest 
{ 
    [TestClass] 
    public ref class cuttwotest 
    { 
    public: 
     [TestMethod] 
     void TestMethod1() 
     { 
      Assert::AreEqual ((MathFuncs::MyMathFuncs::Add(2,3)), 6, 0.05); 
     } 
    }; 
}