'Programming/Test'에 해당되는 글 2건

  1. 2010.09.10 [펌] VC++ 2008 셋팅 & Google Test
  2. 2010.09.10 [펌] Google Test & Visual Studio 2008
출처: http://arcangeleri.blog.me/90089351278

VC++ 2008 셋팅 & Google Test

말할 것도 없습니다. Google은 C++은 전부 Google Test로 유닛 테스트를 한다고 합니다.

왜 더 Unit++ 같은 테스트 도구가 이미 있는데 Google Test를 쓸까요. 좋기 때문입니다.

제가 봤더니 확실히 좋은 기능도 많고 편합니다.

자 뭐 금강산도 식후경 일단 맛을 봐야 구글 테스트의 쫄깃함을 아실 수 있으실 겁니다.

자 일단 구글 테스트를 받아야 겠습니다.

http://code.google.com/p/googletest/downloads/list

 

전 VC++을 씁니다. 당연합니다. 전 MS빠 입니다.

다른 도구를 쓸 리가 없습니다. 그럼 바로 셋팅 들어갑니다.

압축을 푸시면

대략 이러합니다. MSVC 눈에 띄는 군요. 잽싸게 들어갑니다.

이걸 실행하면 멋지게 실행 됩니다.

2005든 2008이든 변환 마법사가 뜹니다. 별다른 셋팅 없이 그냥 Finish나 마침을 눌러서 변환 합니다.

앗차!

그 전에 압축을 푸시면 gtest 디렉토리가 읽기 전용입니다.

그래서 변환을 할 수 없다고 VS가 푸념을 늘어놓을 겁니다.

아래대로 셋팅합니다.

gTest 최상위 루트로 갑니다. gTest를 오른쪽 클릭합니다.

메뉴에서 맨 밑에 있는 속성을 클릭합니다.

 

 

 

이제 소스 코드가 있으니까 원하시는 입맛대로 소스를 라이브러리로 만드셔도 되고 소스 통째로 사용하셔도 됩니다.

만약 기존 유닛테스트를 하고 싶으신 프로젝트에 MFC를 사용하고 계시다면 컴파일 옵션에 /MT /Mtd / MDd /Md 옵션을 일치시켜주셔야 합니다. 안그러면 스텐다드 라이브러리는 사용하는 경우 already defined Linker error를 몸소 체험하시게 될 것입니다.

 

자 인제 예제를 해봅시다.

 

MFC라면 InitInstance나 win32 console이시라면 _tmain이 되겠습니다.

#include <gtest/gtest.h> 

 

void InitInstance() or

int main(int argc, char **argv)

{

      ::testing::InitGoogleTest(&argc, argv); 

    return RUN_ALL_TESTS(); 

}

 

Test(SampleTest, Test1)

{

    ASSERT_TRUE(true);

    EXPECT_TRUE(true);

}

 

아놔 여기까지 하신거면 절반은 하신겁니다.

아니 거의 다하신 겁니다.

 

내일부터 실전 들어갑니다.

정말 게임 코드를 가지고 해보도록 하겠습니다.

 

그리고 앞서 나가실 분은 다음 페이지를 참조하시면 편할 것 같습니다.

http://code.google.com/p/googletest/wiki/GoogleTestPrimer

영어라면 손발이 오글오글 하시다면 하루에 한번씩 제 블로그에 놀러오시면 됩니다.

 

그럼 +_+/ 



'Programming > Test' 카테고리의 다른 글

[펌] Google Test & Visual Studio 2008  (0) 2010.09.10
Posted by 세모아
,
출처: http://wafe.kr/81

Google Test & Visual Studio 2008
  1. google test를 다운받는다.(gtest-1.3.0)
  2. 필요한 폴더만 남기고 나머지는 지운다. 실제 프로젝트에서 쓸 때에는 include, msvc, src 폴더 외에는 필요없다.
  3. msvc 폴더의 파일 중에도, 프로젝트에서 쓸 때에는 gtest.vcproj 파일 외에는 다 필요 없으므로 지워버린다.
  4. VS2008로 gtest.vcproj 파일을 열어서 2008 포맷으로 변환해준 후 VS를 닫는다. (닫을 때 sln을 저장할 것인지 물어보는데 저장하지 않음을 선택한다.)
  5. 프로젝트를 만든다.
  6. 솔루션 폴더에 gtest-1.3.0 폴더를 통채로 옮긴다.
    1. 여러 사람이 같이 작업하는 프로젝트에서 구글 테스트 프레임워크를 쓰기에는, 솔루션 폴더에 통채로 포함시키는 편이 공유하기에 편하다.
    2. 현재 사용중인 버전을 아는 것이 좋으니까 gtest-1.3.0 같은 식으로 폴더 이름에 프레임워크 버전을 포함시켜 두도록 한다.
  7. 솔루션에 "기존 프로젝트 추가"를 해서 gtest.vcproj 를 추가한다.
  8. 솔루션에 테스트 프로젝트를 추가한다.
    1. VC++ > 일반 > 빈 프로젝트를 추가하도록 한다.
  9. 테스트 프로젝트의 참조에 gtest 프로젝트를 추가한다.
  10. gtest-1.3.0/src 폴더에 있는 gtest_main.cc 테스트 프로젝트 폴더로 복사하고, 테스트 프로젝트에 추가한다.
  11. 테스트 프로젝트의 "추가 포함 디렉터리"에 $(SolutionDir)\gtest-1.3.0\include 를 추가한다.
  12. 테스트 프로젝트와 gtest 프로젝의 구성 속성에서 "C/C++ > 코드 생성" 페이지의 "런타임 라이브러리"를 맞춰준다. (여기서는 다중 스레드 디버그(/MTd)로 맞췄다.)
  13. 테스트 프로젝트의 구성 속성에서 "빌드 이벤트 > 빌드 후 이벤트" 페이지의 "명령줄"에 $(TargetPath) 를 설정해준다. 이렇게 하면 프로젝트가 빌드 된 후 바로 테스트 프로젝트가 실행되고, 실행 결과가 VS 출력 창에 나타난다. gtest-output.png
  14. 실패하는 테스트 케이스가 있는 경우에는 컴파일 에러와 마찬가지로 출력 창에 소스 파일과 라인이 표시되기 때문에 마우스로 더블클릭하면 실패한 라인으로 바로 이동된다.

 

참조:


'Programming > Test' 카테고리의 다른 글

[펌] VC++ 2008 셋팅 & Google Test  (0) 2010.09.10
Posted by 세모아
,