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)

相关文章
|
机器学习/深度学习 人工智能 自然语言处理
浅析人机对话系统的主要模块及核心技术
之前,在我的另一篇博客:简述智能对话系统 里面概述了对话系统的分类、应用场景及产生的社会价值。今天,来简单讲述一下对话系统的主要模块与核心技术。
|
缓存 Kubernetes API
K8S 性能优化 - K8S APIServer 调优
K8S 性能优化 - K8S APIServer 调优
|
存储 运维 关系型数据库
数据的力量:构筑现代大型网站之数据库基础与应用
数据的力量:构筑现代大型网站之数据库基础与应用
298 0
|
前端开发 算法 安全
软件开发过程详解
【8月更文第20天】在当今数字化时代,软件开发已成为企业和组织获取竞争优势的关键。一个高效的软件开发过程不仅能够确保最终产品的质量,还能有效控制成本和时间。本文将详细介绍软件开发的各个阶段,包括需求分析、设计、编码与实现、测试与质量保证以及维护与升级,并通过实例帮助读者更好地理解这些概念。
1165 0
|
消息中间件 监控 中间件
中间件数据传输与采集
中间件在数据传输与采集中扮演关键角色,确保数据可靠性、转换格式、过滤信息、支持异步传输及保障安全性。它提供数据源灵活性,实现实时监控,并在应对不同业务需求时展现可扩展性。选择中间件时,需考虑性能、稳定性和可扩展性,以适应长期业务发展。
214 8
|
编解码 自然语言处理 语音技术
概率图模型在真实世界中的应用
概率图模型有许多不同的实际应用。 为了激起大家对概率图模型的兴趣,也为了让大家能够对概率图模型有感性的认知,本章会分享概率图模型的诸多实际应用案例。
470 0
概率图模型在真实世界中的应用
|
Oracle Java 关系型数据库
JDK下载(最新)
JDK下载(最新)
|
数据采集 负载均衡 应用服务中间件
Python爬虫之Splash负载均衡配置#7
Splash负载均衡配置【2月更文挑战第28天】
152 0
|
SQL 存储 关系型数据库
Mysql数据库基础第二章:(七)子查询
出现在其他语句中的select语句,称为子查询或内查询。外部的查询语句,称为主查询或外查询
Mysql数据库基础第二章:(七)子查询