现在的位置: 首页 > 综合 > 正文

CppUnit–WIN32平台安装说明

2012年11月19日 ⁄ 综合 ⁄ 共 4098字 ⁄ 字号 评论关闭

附录(Appendix)——WIN32平台安装说明


目前,CPPUnit在WIN32平台下仅支持Microsoft Visual C++,而且你的VC++编译器至少应该是6.0版本的。

使用GUI TestRunner编译运行示例程序的步骤如下:

  1. 在VC++中打开examples/examples.dsw(包含所有的示例)
  2. 将HostApp设为active project
  3. 编译之
  4. 在VC中选择Tools/Customize.../Add-ins and Macro Files,点击Browse...
  5. 选择lib/TestRunnerDSPlugIn.dll文件,并按ok以注册该附加件(add-ins)
  6. 运行project

[Project创建结果]

框架 & 工具:

  • cppunit(cppunit.lib):单元测试的框架库,你将用它来编写单元测试。
  • cppunit_dll(cppunit_dll.dll/lib):同上,只是以DLL方式呈现。
  • TestRunner(testrunner.dll):一个MFC的扩展DLL,用来以GUI方式运行单元测试和查看结果。
  • DSPlugIn(lib/TestRunnerDSPlugIn.dll):一个VC++的附加件,为testrunner.dll所使用。有了它之后,你若在MFC TestRunner中双击某个failure,就会启动VC++,打开failure所在文件并定位到某行。
  • TestPlugInRunner:(警告:实验性的)一个VC++应用程序,用以运行测试插件。测试插件就是一个公开特定接口的DLL。该应用程序目前尚未完成(auto-reload特性丢失)。

所有库文件都被置于lib/目录下。

[示例]

  • CppUnitTestMain:一个实际的测试包(test suite)用来测试CppUnit。使用了TextTestRunner(文本方式的单元测试环境),利用CompilterOutputter进行post-build testing(即在编译结束之后紧跟着进行测试)。在配置中设定连接了cppunit的静态库和动态库。
  • CppUnitTestApp:包含了与CppUnitTestMain相同的测试包,但使用了MFC TestRunner(GUI方式的单元测试环境)
  • hierarchy : 一个演示如何子类化测试的例子(你也许更愿意使用HelperMacros.h以及宏CPPUNIT_TEST_SUB_SUITE,这种方式更为简洁清晰。本示例已经很久没有更新了)。
  • HostApp : 一个用MFC TestRunner演示各种失败测试的例子。也演示了MFC Unicode TestRunner。
  • TestPlugIn : 一个演示如何为TestPlugInRunner编写TestPlugIn的例子(实验性的).

[配置(Configuration)]

CppUnit和TestRunner带有3种配置。

  • Release():多线程DLL,release模式
  • Debug(d):Debug多线程DLL,debug模式
  • Unicode Release(u):Unicode多线程DLL,release模式
  • Unicode Debug(ud):Unicode Debug 多线程DLL,debug模式
  • Debug Crossplatform (cd): Debug 多线程DLL,没有使用type_info从类名中提取测试用例的包名。

对CppUnit而言,当创建dll时,字母“dll” 将被添加到后缀之后。

括号内的字母标明了添加到库名之后的后缀。例如,debug配置的cppunit静态库名为cppunitd.lib。debug配置的cppunit动态库名为cppunitd_dll.lib.

[创建(Building)]

  1. 在VC++中打开src/CppUnitLibraries.dsw工作区文件。
  2. 将TestPlugInRunner设为active project。
  3. 在'Build'菜单中选择'Batch Build...'
  4. 在Batch Build对话框中,选中所有的project 并按下build按钮。
  5. 所有的库文件可以在lib/目录下找到。

[测试(Testing)]

  1. 打开工作区文件examples/Examples.dsw。
  2. 将CppUnitTestApp设为active project.
  3. 为你要创建的库选择合适的配置。
  4. 编译运行project。TestRunner GUI将会出现。

[库(Libraries)]

所有编译后生成的库均可在'lib'目录中找到。多数库可以在src/CppUnitLibraries.dsw工作区中创建。

lib/:

  • cppunit.lib : CppUnit静态库“Multithreaded DLL”
  • cppunitd.lib : CppUnit静态库“Debug Multithreaded DLL”
  • cppunit_dll.dll : CppUnit动态库(DLL)“Multithreaded DLL”
  • cppunit_dll.lib : CppUnit动态导入库“Multithreaded DLL”
  • cppunitd_dll.dll : CppUnit动态库(DLL)“Debug Multithreaded DLL”
  • cppunitd_dll.lib : CppUnit动态导入库“Debug Multithreaded DLL”
  • qttestrunner.dll : QT TestRunner动态库(DLL)“Multithreaded DLL”
  • qttestrunner.lib : QT TestRunner导入库“Multithreaded DLL”
  • testrunner.dll : MFC TestRunner动态库(DLL)“Multithreaded DLL”
  • testrunner.lib : MFC TestRunner导入库“Multithreaded DLL”
  • testrunnerd.dll : MFC TestRunner动态库(DLL)“Debug Multithreaded DLL”
  • testrunnerd.lib : MFC TestRunner导入库“Debug Multithreaded DLL”
  • testrunneru.dll : MFC Unicode TestRunner动态库(DLL)“Multithreaded DLL”
  • testrunneru.lib : MFC Unicode TestRunner导入库“Multithreaded DLL”
  • testrunnerud.dll : MFC Unicode TestRunner动态库(DLL)“Debug Multithreaded DLL”
  • testrunnerud.lib : MFC Unicode TestRunner导入库“Debug Multithreaded DLL”
  • TestRunnerDSPlugIn.dll : 注册到你的VC++中的附加件。

注意:当你使用CppUnit DLL(cppunit*_dll.dll)时,你必须连接相关的导入库,并在project中定义预处理标识CPPUNIT_DLL。

[使用CppUnit]

  • 编写单元测试:

    为了编写单元测试,你需要连接cppunitXX.lib,此处的XX即所选配置对应的后缀字母。 你必须在你的project中打开RTTI开关(Project Settings/C++/C++ Language)。 CppUnit的include目录必须包含在include查找路径中。你可以通过在Project Settings/C++/Preprocessor/Additional include directories或者Tools/Options/Directories/Include中添加include目录做到这一点。

    简言之:

    • 打开RTTI开关
    • 连接lib/cppunitXX.lib
    • include/ 必须包含在include查找路径中
  • 使用TestRunner GUI:

    为了使用GUI的test runner,你需要连接testrunnerXX.lib和cppunitXX.lib,此处的XX即所选配置对应的后缀字母。 你必须在你的project中打开RTTI开关。 文件testrunner.dll必须位于你的应用程序所在的路径(Debug或Release目录,project的dsp文件所在目录,或环境变量PATH中所指定的目录)。 一个最简单的办法是,要么添加一个post-build命令,或者,将位于lib/目录下的testrunner.dll添加到你的project中来,并定制创建步骤,将dll文件拷贝到你的“中间结果”目录(通常是Debug或Release目录)。

    因为TestRunner GUI是一个MFC的扩展DLL,它能够访问当前应用程序的CWinApp。 参数设置将使用应用程序的注册键。这意味着,设置项“最近使用的测试”对每个应用程序而言都是不同的。

    简言之:

    • 打开RTTI开关
    • 连接lib/cppunitXX.lib和lib/testrunnerXX.lib
    • include/必须包含在include查找路径中
    • 为了运行你的project,lib/testrunnerXX.dll必须可用
  • 使用DSPlugIn:

    你必须在VC++中注册该插件。在Tools/Customize/Add-ins and Macro files中点击browse,并选择lib/TestRunnerDSPlugIn.dll(你可以注册release版或者debug版,都能运行)。

    若VC++正在运行,当你双击一个failure后,VC++将打开相关文件并定位到出错行。

  • 使用Test Plug In Runner:

    你的DLL必须导出(export)一个函数,该函数实现了在include/msvc6/testrunner/TestPlugInInterface.h中所定义的接口。作为范例,参见examples/msvc6/TestPlugIn/TestPlugInInterfaceImpl.*。注意:该runner仍处于实验阶段并未作足够多的测试。

抱歉!评论已关闭.