VisualStudio를 위한 UnitTest++ 애드인

뭔가 좀 많이 늦은 감이 있지만(…), rein이 사용하는 유닛 테스트 프레임웍 중 하나인 UnitTest++의 VC++ 애드인을 발견하고 테스트 ((UnitTest++외에도 BoostTest나 CppUnitLite2(UnitTest++의 메인 커미터가 CppUnitLite2를 한동안 관리했다) 혹은 CppUnitLite도 지원한다)).

vutpp

이런 GUI add-in을 VS 2005에 통합할 수 있게 된다. (테스트에 사용된 것은 전에 포스팅했던 Closure 구현)

사용하기 위해 필요한 것은 다음과 같다.

  • 필요한 툴들 — VS 2005, UnitTest++, VisualUnitTest++ 애드인 + 샘플 ((http://code.google.com/p/vutpp/ 에서 다운로드 받을 수 있다. 프로젝트 메인 페이지이기도 하다.))
  • 필요한 파일들 — UnitTest++.lib 과 VisualUnitTest++의 샘플에 들어있는 TestReporter 구현 ((그냥 VUTPPBind.cpp를 복사하면 충분하다. 이게 없으면 애드인을 활성화할 때 “Cannot create tool알 수 없는 에러메시지를 보게된다 -_-;;))
  • 필요한 프로젝트 설정 — 테스트들이 있는 프로젝트의 C++ Preprocessor 정의에 VUTPP_UNITTEST++ 추가
  • DLL 로 프로젝트(테스트가 있는)를 빌드할 것

이런 작업들을 수행한 후에 VisualStudio 애드인 메뉴에서 테스트를 활성화해서 테스트하면 OK.

실행 시간이 긴 테스트가 많다면 같이 도는게 좀 많이 귀찮아지는데 그런 염려가 사라져서 무척 좋다. 시각적으로 즐겁다는 점도 무시할 수 없고 :)

앞으로 해야할 것

CC.Net 에서는 커맨드 라인에서 / 특정 리포터(XML) 로 테스트 결과를 출력하고 응용 프로그램이어야 한다. 그래서 테스트 프로젝트 자체도 .lib + .exe / .dll (reporter 용의) 분리해야하나? 내일 잠깐 회사를 들리거나 월요일 출근 후에 테스트 해봐야할 듯. ((근데 생각해보니 DLL Export로 테스터의 실행 직전 형태를 export하면 테스트 용 프로젝트가 2개여야 할 필요는 없을 듯…))

ps. 근데 모든 테스트가 성공했는데 왜 GUI툴이 붉은 색으로 나올까? 댓글로 남긴 것 처럼 테스트가 0개인 프로젝트 때문에 발생한 일. 그 프로젝트에는 DLL로 나온 진입점이 없어서 실행할 수는 없으니 오류라고 판단한 듯 하다. 그걸 수정하니 저런 녹색 실행화면을 볼 수 있었다.

Jinuk Kim
Jinuk Kim

SW Engineer / gamer / bookworm / atheist / feminist

Articles: 935

5 Comments

  1. 붉게 표시되는 원인을 발견.

    원인: 테스트가 없는 라이브러리 프로젝트에도 VUTPP_UNITTEST++ 을 정의해줬었다.
    결과: 그래서 거기엔 export된 심볼이 없어서 제대로 실행되지 못해서 오류로 간주한 모양.

    해당 프리프로세서 정의를 없애서 해결. 이젠 JUnit 부럽지…(아직 부럽긴함)않은 환경이 되어가는듯함

  2. 얘도 나오는데, 내가 뻘짓해서(TEST 0개인 프로젝트 생성) 망했지[..]
    녹색바가 나오는 것으로 다시 캡쳐.

Leave a Reply