프로그래밍/VC++

CPPUnit 제대로 써보자.

panpro 2007. 10. 28. 22:35

CPPUNIT 다운로드 : http://cppunit.sourceforge.net
cppunit 1.10.2 기준


### 프로젝트 설정

MFC Dialog Based 프로젝트 생성

1. C/C++ / 일반 / 추가포함 디렉토리
"$(NLELIB)\cppunit\cppunit-1.10.2\include";"$(NLELIB)\cppunit\cppunit-1.10.2\src"

잘 보자. 2개다.


2. C/C++ / 코드 생성 / 런타임 라이브러리  :
다중 스레드 디버그 DLL(Multi-threaded Debug DLL) (/MDd)

3. C/C++ / 언어 / 런타임 형식 정보사용 : 예

4. 링커 / 일반 / 추가 라이브러리 디렉터리 : $(NLELIB)\cppunit\cppunit-1.10.2\lib

5. 링커 / 입력 / 추가 종속성 : cppunitd_dll.lib testrunnerd.lib

6. testrunnerd.dll 파일과 cppunitd_dll.dll 파일을 내 debug 폴더로 복사


### 소스코드 수정

1. APP 파일에서 다음과 같이 한다.

#include "msvc6/testrunner/testrunner.h"
#include "cppunit/extensions/testfactoryregistry.h"


BOOL CUnitTestApp::InitInstance()
{
 TestRunner runner;
 runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
 runner.run();
 return FALSE;

 ....

알지 이렇게 하면 그냥 TestRunner만 실행되고 정작 MFC Dialog는 나타나지 않는다.

2. TestCase.h 파일을 만들어 다음과 같이 적는다.

#pragma once

#ifndef _TESTCASE_H_
#define _TESTCASE_H_

#include "cppunit/TestCase.h"
#include "cppunit/extensions/HelperMacros.h"

class TestCaseExample : public CppUnit::TestCase
{
 CPPUNIT_TEST_SUITE(TestCaseExample);
 CPPUNIT_TEST(Test);
 CPPUNIT_TEST_SUITE_END();

public:
 void setUp();
 void tearDown();
 void Test();
};

#endif


3. TestCase.cpp 파일을 만들어서 다음과 같이 적는다.
#include "StdAfx.h"
#include "testcase.h"

CPPUNIT_TEST_SUITE_REGISTRATION(TestCaseExample);

void TestCaseExample::setUp()
{
}

void TestCaseExample::tearDown()
{
}

void TestCaseExample::Test()
{
 CPPUNIT_ASSERT_EQUAL(10, 10);
}

이렇게 하면 끝.


테스트 후 메모리릭이 발생하는데 늘 생기는 것 같다.
48, 20, 44, 48 바이트의 메모리릭이 발생할거다.

다운로드 :