2008년 06월 26일
UnitTest++ 테스트 결과를 Debug창으로 출력하기
UnitTest++에서 기본으로 사용하는 UnitTest::RunAllTests() 함수를 사용하면 테스트 결과가 콘솔창으로 출력됩니다. 콘솔 어플리케이션이 아닌 윈도우 어플리케이션 같은 프로젝트에서는 이 함수를 이용하면 결과를 볼수 없게 되므로 어떻게 할까 고민하다가 디버그창에 출력해보기로 했습니다.
class DebugOutputReporter : public TestReporter
{
public:
DebugOutputReporter(void);
~DebugOutputReporter(void);
virtual void ReportTestStart(TestDetails const& test);
virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed);
virtual void ReportFailure(TestDetails const& test, char const* failure);
virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
};
TestReporter 클래스를 상속 받아서 몇개의 함수를 구현해주면 됩니다.
ReportTestStart : 테스트가 시작할때 마다 호출
ReportTestFinish : 테스트가 끝날때 마다 호출
ReportFailure : 실패한 테스트에 대한 정보 출력
ReportSummary : 테스트 전반에 대한 정보 출력
DebugOutputReporter 소스는 아래 첨부했습니다.
DebugOutputReporter.zip
main 혹은 WinMain 함수에서 아래와 같이 사용하면 됩니다.
UnitTest::DebugOutputReporter reporter;
UnitTest::RunAllTests(reporter, UnitTest::Test::GetTestList(), NULL, 0);
return 0; // 이건 필요에 따라...
윈도우 어플리케이션이라면 #ifdef RunTest ~ #endif 안에 넣어두고 사용하면 RunTest가 정의되면 Testcase가 실행되고 정보가 Debug창에 출력됩니다.
Debug창에 출력하니 좋은점은 실패한 테스트 정보를 더블 클릭하면 해당 소스라인으로 커서가 자동으로 이동된다는 점입니다. 이것은 VS의 기능인것 같은데 출력창에 소스파일과 라인이 Format에 맞게만 출력되면 지원해주는 것 같습니다.
c:\work\projects\zetc\unittest++\debugviewtest\debugviewtest.cpp(11): error: Failure in SimpleTest: false
이런 것을 얻어 걸렸다고 하나요. ^^;
ps. 유니코드 / 멀티바이트 모두 지원합니다.
class DebugOutputReporter : public TestReporter
{
public:
DebugOutputReporter(void);
~DebugOutputReporter(void);
virtual void ReportTestStart(TestDetails const& test);
virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed);
virtual void ReportFailure(TestDetails const& test, char const* failure);
virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed);
};
TestReporter 클래스를 상속 받아서 몇개의 함수를 구현해주면 됩니다.
ReportTestStart : 테스트가 시작할때 마다 호출
ReportTestFinish : 테스트가 끝날때 마다 호출
ReportFailure : 실패한 테스트에 대한 정보 출력
ReportSummary : 테스트 전반에 대한 정보 출력
DebugOutputReporter 소스는 아래 첨부했습니다.
DebugOutputReporter.zip
main 혹은 WinMain 함수에서 아래와 같이 사용하면 됩니다.
UnitTest::DebugOutputReporter reporter;
UnitTest::RunAllTests(reporter, UnitTest::Test::GetTestList(), NULL, 0);
return 0; // 이건 필요에 따라...
윈도우 어플리케이션이라면 #ifdef RunTest ~ #endif 안에 넣어두고 사용하면 RunTest가 정의되면 Testcase가 실행되고 정보가 Debug창에 출력됩니다.
Debug창에 출력하니 좋은점은 실패한 테스트 정보를 더블 클릭하면 해당 소스라인으로 커서가 자동으로 이동된다는 점입니다. 이것은 VS의 기능인것 같은데 출력창에 소스파일과 라인이 Format에 맞게만 출력되면 지원해주는 것 같습니다.
c:\work\projects\zetc\unittest++\debugviewtest\debugviewtest.cpp(11): error: Failure in SimpleTest: false
이런 것을 얻어 걸렸다고 하나요. ^^;
ps. 유니코드 / 멀티바이트 모두 지원합니다.
# by | 2008/06/26 01:11 | Programming | 트랙백 | 덧글(1)






