CppUnitDemoFactorial构建步骤
一、 CppUnit的安装。
主要的文件夹有:
doc:CppUnit的说明文档。另外,代码的根目录,还有三个说明文档,分别是INSTALL,INSTALL-unix,INSTALL-WIN32.txt;
examples:CpppUnit提供的例子,也是对CppUnit自身的测试,通过它可以学习如何使用CppUnit测试框架进行开发;
include:CppUnit头文件;
src:CppUnit源代码目录;
config:配置文件;
contrib:contribution,其他人贡献的外围代码;
lib:存放编译好的库;
src:源文件,以及编译库的project等;
二、
在src/目录下,将CppUnitLibraries.dsw工程文件用vc 打开。执行build/batch build,只选win32 Debug, 不要选unicode,生成的库文件将被拷贝到lib目录下。 编译通过以后,在lib/目录下,会生成若干lib,和dll文件,都以cppunit开头.cppunitd表示debug版, cppunit表示release版。
CppUnit为我们提供了两套框架库,一个为静态的lib,一个为动态的dll。cppunitproject:静态lib;cppunit_dllproject:动态dll和lib。在开发中我们可以根据实际情况作出选择。
你也可以根据需要选择所需的项目进行编译,其中项目cppunit为静态库,cppunit_dll为动态库,生成的库文件为:
· cppunit.lib:静态库release版;
· cppunitd.lib:静态库debug版;
· cppunit_dll.lib:动态库release版;
· cppunitd_dll.lib:动态库debug版;
· 设置头文件和库文件路径,选择Tools/Options/Directories,在Includefiles和Library files中分别添加文件所在的路径,Save Workspace。
·
·
·
二、初识CppUnit测试环境
· 进入example文件夹,用VC打开examples.dsw。
· 将CppUnitTestApp工程设为ActiveProject(Win32 Debug),编译后运行,是基于GUI方式进行单元测试TestRunner的界面。
·
·
· 将CppUnitTestMain工程设置为ActiveProject(Win32 Debug),编译并运行,是基于文本方式的单元测试环境。
·
· 将HostApp工程设置为Active Project(Win32Debug),编译运行。
·
三、CppUnitDemoFactorial构建步骤
1、新建一个基于对话框的工程CppUnitDemoFactorial,可编译运行。
2、设置工程属性:Project -> Settings-> C++ -> C++ Language -> Enable RTTI。
3、设置工程属性:Project-> Settings -> Link -> object/library Modules ->
在左上角选择Win32 Debug,填入:cppunitd.lib testrunnerd.lib。
在左上角选择Win32 Release,填入:cppunit.libtestrunner.lib。
注意:工程属性设置完毕后,要Save Workspace。可编译运行。
4、将Factorial.cpp和Factorial.h添加至当前的工程中,编译会出现以下错误:
factorial.cpp(15) : fatal error C1010: unexpected end offile while looking for precompiled header directive
设置工程属性:Project -> Settings -> C++ -> Precompiled Headers ->Not using precompiled headers。
工程属性设置完毕后,要Save Workspace。可编译运行。
5、新建类:CFactorialTestCase,派生于CppUnit::TestCase。
6、添加成员函数:voidfactorialTest()。
7、添加函数体:
CPPUNIT_ASSERT_EQUAL(0,Factorial(-5));
CPPUNIT_ASSERT_EQUAL(1,Factorial(0));
CPPUNIT_ASSERT_EQUAL(6,Factorial(3));
8、在CFactorialTestCase类的定义头文件中,添加:
CPPUNIT_TEST_SUITE(CFactorialTestCase);
CPPUNIT_TEST(factorialTest);
CPPUNIT_TEST_SUITE_END();
9、在FactorialTestCase.h中,添加头文件:
#include <cppunit/TestCase.h>
#include<CppUnit/extensions/HelperMacros.h>
#include "Factorial.h"
10、在FactorialTestCase.cpp中,添加:
CPPUNIT_TEST_SUITE_REGISTRATION(CFactorialTestCase);
11、在CppUnitDemoFactorial.cpp中添加:
CppUnit::MfcUi::TestRunner runner;
runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
runner.run();
return TRUE;
12、在CppUnitDemoFactorial.cpp中添加:
#include<cppunit/ui/mfc/TestRunner.h>
#include<cppunit/extensions/TestFactoryRegistry.h>
13. 由于TestRunner.dll为我们提供了基于GUI的测试环境。为了让我们的测试程序能正确的调用它,TestRunner.dll必须位于你的测试程序的路径下。所以把/lib目录下的TestRunner.dll文件分别拷贝到UnitTestpriject的程序debug输出目录中。
14.最后,运行程序。