软件测试实验学习笔记系列4--CppUnit

发表于:2013-8-07 11:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xiajian2010    来源:51Testing软件测试网采编

  1.2 在VC 6.0/window下安装(参考6)

  a) 从官方网站上下载CppUnit的tar包并解压到本地磁盘,比如D:\CppUnit1.12.1

  b) 编译、安装CppUnit库。在VC中打开D:\CppUnit1.12.1\src\CppUnitLibraries.dsw,选择“Build | BatchBuild...”,选中所有的项目,点击build按钮。在D:\CppUnit1.12.1\lib\下生成所需要的所有库文件。

  c)在Visual C++中进行设置。告诉VC在哪里能找到CppUnit中的程序文件和库文件:打开“Tools | Options...”,切换到'Directories'标签页,选择'include files',添加D:\CppUnit1.12.1\include\;切换到'libraries files'标签页,添加CPPUNITHOME/lib/;切换到'source files'标签页,添加D:\CppUnit1.12.1\src\cppunit\,保存。

  d) 在测试代码中进行设置。在VC中打开你写的测试程序,启动Project Settings对话框,切换到'C++'标签页,选择'Code generation'项,对于release版,选择'Multithreaded DLL',对于Debug版,选择'Debug Multithreaded DLL'。同样是在这个标签页,选择'C++ langage'项,选择All Configurations,选择'enable Run-Time Type Information (RTTI)'。切换到'Link'标签页,在'Object/library modules'中添入需要的lib文件cppunitX.lib (debug模式为cppunitd.lib, release 模式为cppunit.lib )和testrunnerX.lib(debug模式为testrunnerd.lib, release 模式testrunner.lib,debug Unicode模式为testrunnerud.lib, release Unicode模式为testrunneru.lib)

  e).添加系统路径。为使测试程序在运行时能找到CppUnit提供的dll,我们在环境变量中指出CppUnit提供的dll的路径:在我的电脑中,打开环境变量,编辑系统变量中的path变量,向其中添加CPPUNITHOME\lib,从新启动计算机,使设置生效。

  1.3. 在Eclipse下安装CppUnit

  CppUnit配置到Eclipse平台实际是通过项目中加入头文件实现的,将CppUnit 的头文件的目录添加到编译所用环境变量中.

  1.4.在MinGW/Eclipse/window 下安装

  这个组合是为了在window的环境下使用gcc来编译CppUnit的测试代码。这里先简单介绍一下MinGW.

  1.4.1MinGW简介

  一个自由使用和自由发布的Windows特定头文件和使用GNU工具集接口库的集合,支持生成的windows程序而不需要借助第三方运行时库。MinGW(MiniamalistGNU for Windows)是一些头文件和接口库的集合,该集合支持人们在没有第三方动态链接库的情况下使用GCC来生成Win32程序。在基本层上,MinGW是一组包含文件和接口库,其功能是允许控制台模式的程序使用MS标准C运行时库(MSVCTR.dll)。通过基本运行时,gcc编写的符合ANSI的控制台模式的程序可以使用C运行库扩展,MinGW的另一个组成部分W32API—是一组可以使用win32API的包含文件的和接口库。

  提到MinGW,必然想到Cygwin:Cygnus Solutions开发的自由软件,嵌入式软件的开发的流行。Cygwin改进了gcc,gdb,gas,使其能够生成并解释win32的目标文件,然后再把这些工具移植到window中,共享库(基于win32API编写了一个Unix系统库的模拟层),Unix主机交叉编译,逐步移植其他的工具。

  在这个环境下安装和在Linux安装什么区别。

  终于,所有的安装事项都结束了,在进入理论前使用一个例子实践一下。

  2 CppUnit实例--来自参考[3]

/*Program:testcppunit.cpp -- a simple hellow example which use the cppunit tool*/
#include <iostream>
#include <cppunit/TestRunner.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
class Test : public CPPUNIT_NS::TestCase
{
    CPPUNIT_TEST_SUITE(Test);
    CPPUNIT_TEST(testHelloWorld);
    CPPUNIT_TEST_SUITE_END();
    public:
     void setUp(void) {}
     void tearDown(void) {}
    protected:
     void testHelloWorld(void) { std::cout << "Hello, world!" << std::endl; }
};
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
int main( int argc, char **argv )
{
    // Create the event manager and test controller
    CPPUNIT_NS::TestResult controller;
    // Add a listener that colllects test result
    CPPUNIT_NS::TestResultCollector result;
    controller.addListener( &result );      
    // Add a listener that print dots as test run.
    CPPUNIT_NS::BriefTestProgressListener progress;
    controller.addListener( &progress );    

    // Add the top suite to the test runner
    CPPUNIT_NS::TestRunner runner;
    runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );
    runner.run( controller );
    return result.wasSuccessful() ? 0 : 1;
}

42/4<1234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号