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

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

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

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

分享:

编译命令: gcc -o  testcppunit testcppunit.cpp -lcppunit (如果是VC/windows的话,使用cl 代替gcc--注意要配置cl的环境变量才可以在cmd命令行下使用)

在shell输入./testcppunit ,执行结果:

Test::testHelloWorldHello,world!

:OK

3 一些CppUnit的理论


1)CppUnit核心部分(core)

基本测试类:Test,TestFixture,TestCase,TestSuite

测试结果记录:SychronizedObject,TestListener,TestResult

错误处理:TestFailure,SourceLine,Execption,NotEqualException

断言:Asserter,TestAssert

2)输出部分(Ouput)

基本部件:Outputter,TestResultCollector

衍生类:TestOutputter,CompilerOutputer,XmlOutputer

3)辅助部分(Helper)

TypeInfoHelper,TestFactory,TestFactoryRegistry,NamedRegisters,TestSuiteFactory,

TesSuiteBuilder,TestCaller,AutoRegisterSuite,HelperMacros.

4)扩展部分(Extension)

TestDecorator,RepeatedTest,Orthodox,TestSetUp

5)监听者部分(Listener)

TestSucessListener,TextTestProgressListener,TextTestResult

6)界面部分(UI)

TestRunner(TextUI,MfcUI,QtUI)

7)移植(Portabilty):OStringStream

4 网上的关于CppUnit的一些资料的汇总
 a)CppUnit 快速使用指南:https://www.ibm.com/developerworks/cn/linux/l-cppunit/

 b)CppUnit源代码解读:http://morningspace.51.net/resource/cppunit/cppunit_anno.html

    其中百度文库上有一个关于这个源码解读的doc格式的资料:http://wenku.baidu.com/view/b7fcad4bcf84b9d528ea7ae1.html

 c)百度文库中还有其他类似的CppUnit的资料,但是不如上面的这两个质量高.

 d)还有一个资料就是CppUnit源码包中example以及相应的文档

  5. 后记--关于CppUnit 1.21.1源码安装的问题的探索

  源码安装时遇到问题首先是要看readme中没有没有介绍,然后看看INSTALL,FAQ,TODO中有没有解决方法,然后才到网上搜结果。

  首先找到参考[3] 其中介绍了一个ldconfig命令---一个修改了/etc/ld.so.confl文件的后重来动态加载的相应动态链接库程序的路径的程序。参考[3]中描述的不适和我的机器,”修改/etc/ld.so.conf文件(动态链接库路径)并添加/usr/local/lib来增加动态加载的库的路径“,我的系统中/etc/ld.so.conf.d/*.conf中已经包含了/usr/local/lib路径。

  此外,还实践了这一句:”make install没有把头文件安装到/usr/include中去,此时还需要手工去复制,只要把include下面的cppunit目录复制到/usr/include下面就可以了,命令很简单,就不写了。”实践命令是:

  sudo cp -r cppunit /usr/include --- 这个其实也是有问题的,我后来使用locate命令在 /usr/local/iinclude中发现了cppunit目录。

  其次是参考[4],我惊人的发现那个外国哥们遇到的问题和我一样,看了下面的回复后,我以为是因为没有安装libdl.so的问题,尝试安装libc6和libc6-dev(使用sudo apt-get install xxx),实际系统已经安装好了这两个库(基本构建库),看了各种奇怪的Linux发行版的路径,终于在/lib/i386-linux-gun/下发现了libdl.so.2库是存在的,为什么会编译错误,是路径的问题吗??找了一个程序实例使用一下libdl库。

/*Program:testlibdl.c -- this example test weather the libdl.so.2 is work or not*/
#include <stdlib.h>
#include <stdio.h>
#include <dlfcn.h>
int main(int argc, char **argv) {
    void *handle;
    double (*desk)(char*);
    char *error;
    handle = dlopen ("/lib/libc.so.6", RTLD_LAZY);
    if (!handle) {
        fputs (dlerror(), stderr);
        exit(1);
    }
    desk= dlsym(handle, "Apply");
    if ((error = dlerror()) != NULL)  {
        fputs(error, stderr);
        exit(1);
    }
    dlclose(handle);
}

43/4<1234>
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号