cppunit helloworld详尽篇

简介:
cppunit文档真少。一个hellpworld程序折腾了好几个小时才折腾够。tnnd作者给的帮助就那么几句话。

偶就结合折腾过程,写一个更详细点的helloworld。

系统:fc4,gcc4

(1)下载
    到cppunit.sourceforge.net上下载源代码。我的是cppunit-1.10.2.tar.gz。copy到/usr/src下。运行:
        tar -xf cppunit-1.10.2.tar.gz
    解压缩。
(2)安装
    进入cppunit-1.10.2目录下。运行:
        ./configure; make; make check; make install
    安装。make check有些项通不过。没关系。:P
    .o, .a文件已经安装到/usr/local/lib中去了,但头文件没安装到/usr/include中去
(3)copy *.h文件
    把cppunit-1.10.2的cppunit目录复制到/usr/include下
(4)撰写mytest.cpp(从cppunit.sourceforge.net上copy下来的)
 1  #include  < iostream >
 2 
 3  #include  < cppunit / TestRunner.h >
 4  #include  < cppunit / TestResult.h >
 5  #include  < cppunit / TestResultCollector.h >
 6  #include  < cppunit / extensions / HelperMacros.h >
 7  #include  < cppunit / BriefTestProgressListener.h >
 8  #include  < cppunit / extensions / TestFactoryRegistry.h >
 9 
10 
11  class  Test :  public  CPPUNIT_NS::TestCase
12  {
13    CPPUNIT_TEST_SUITE(Test);
14    CPPUNIT_TEST(testHelloWorld);
15    CPPUNIT_TEST_SUITE_END();
16 
17  public :
18     void  setUp( void ) {}
19     void  tearDown( void ) {} 
20 
21  protected :
22     void  testHelloWorld( void ) { std::cout  <<   " Hello, world! "   <<  std::endl; }
23  };
24 
25  CPPUNIT_TEST_SUITE_REGISTRATION(Test);
26 
27  int  main(  int  argc,  char   ** argv )
28  {
29     //  Create the event manager and test controller
30    CPPUNIT_NS::TestResult controller;
31 
32     //  Add a listener that colllects test result
33    CPPUNIT_NS::TestResultCollector result;
34    controller.addListener(  & result );        
35 
36     //  Add a listener that print dots as test run.
37    CPPUNIT_NS::BriefTestProgressListener progress;
38    controller.addListener(  & progress );      
39 
40     //  Add the top suite to the test runner
41    CPPUNIT_NS::TestRunner runner;
42    runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );
43    runner.run( controller );
44 
45     return  result.wasSuccessful()  ?   0  :  1 ;
46  }
47 
48 
(5)编译,运行
        有两种方法
        (a) 链接静态库。编译命令:
       g++ -L/usr/local/lib/libcppunit.a mytest.cpp -lcppunit -ldl -o mytest
       运行:
       ./mytest
       结果:
        Test::testHelloWorldHello, world!
         : OK
         (b) 链接动态库。编译命令:
       g++ mytest.cpp -lcppunit -ldl -o mytest
       运行时要先设置环境变量LD_LIBRARY_PATH到cppunit的安装目录,也就是/usr/local/lib,命令如下:
       export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
       然后运行:
       ./mytest
       结果:
        Test::testHelloWorldHello, world!

         : OK

本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2006/01/05/311149.html如需转载请自行联系原作者


xiaotie 集异璧实验室(GEBLAB)

相关文章
|
27天前
|
测试技术 编译器 持续交付
【Conan 入门教程 】深入理解Conan中的测试包:test_package目录的精髓
【Conan 入门教程 】深入理解Conan中的测试包:test_package目录的精髓
55 0
|
9月前
|
敏捷开发 IDE 测试技术
单元测试PHPUnit初体验之安装与示例
啥?你是程序员没写过单元测试?呃,好吧。小马这次也是需要支持CI/CD才刚开始强制自我实行。
94 0
单元测试PHPUnit初体验之安装与示例
|
Ubuntu Windows
Jpeglib开发笔记(二):JpegLib编译(ubutnu)和Demo
Jpeglib开发笔记(二):JpegLib编译(ubutnu)和Demo
Jpeglib开发笔记(二):JpegLib编译(ubutnu)和Demo
|
Linux 计算机视觉
Qt开发技术:QDBus介绍、编译与Demo
Qt开发技术:QDBus介绍、编译与Demo
Qt开发技术:QDBus介绍、编译与Demo
|
机器学习/深度学习 文字识别 算法
Qt之手写识别开发笔记:Zinnia介绍、编译、使用以及Demo
Qt之手写识别开发笔记:Zinnia介绍、编译、使用以及Demo
Qt之手写识别开发笔记:Zinnia介绍、编译、使用以及Demo
|
Linux 测试技术 文件存储

热门文章

最新文章