CppUnitDemoFactorial构建

来源:互联网 发布:别墅装修设计软件 编辑:程序博客网 时间:2024/06/09 23:16

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.最后,运行程序。

        

 

 

原创粉丝点击