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

本文详细介绍了在Ubuntu 12.04下安装CppUnit单元测试框架的过程,包括通过软件库安装和源代码编译安装两种方法,并针对编译时遇到的libldl库问题给出了解决方案。同时,提到了在VC 6.0、Eclipse及MinGW环境下的安装步骤。文章还探讨了CppUnit的基本概念和使用,并强调了解决问题的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CppUnit单元测试工具

CppUnit也是对xUnit家族中的一个成员,C++语言实现的一个单元测试的框架,Micheal FeathersJUnit移植过来了,GNULGPL条约。

CppUnit按照层次来管理测试,最底层的就是TestCase,当有了几个TestCase以后,可以将它们组织成TestFixture。在TestFixture,可以建立被测试的类的实例,并编写TestCase对类实例进行测试,多个TestFixture可以通过TestSuite来对测试进行管理。

通过派生TestFixture类来设计某个类或某组相关功能的单元测试,Fixture定义公共函数setUp()初始化每个成员变量,tearDown()来释放setUp中使用的资源。在每个测试中,CPPUNIT_ASSERT(bool)来判断某个函数和表达式的正确性,在派生类的声明中,通过CPPUNIT_TEST来增加对应的测试函数,通过CPPUNIT_TEST_SUITECPPUNIT_TEST_SUITE_END来分装所有的测试函数,规定这些测试函数执行的顺序.

1 CppUnit单元测试环境的建立

1.1 在Linux下安装

方法1

在使用Ubuntu软件库中编译好的了的库文集和文档,一条命令解决问题:

         sudo apt-get install libcppunit-dev libcppunit-doc 参考[1]

参考[2]介绍了一个有意思的东西,build-essential(包括libc6.so,libc6-dev.so,gcc以及make等工具),如果没有这个基本包的话,使用源代码安装编译时,./configure部分就会报错。

方法2-使用源代码编译

CppUnit的官方网站:http://sourceforge.net/projects/cppunit/files/cppunit/

源代码可以在官方网站上下载上下载,最新CppUnit的版本是1.12.1(从官方网站上来看,这个版本是2008年2月20更新的,5年过去了都没有更新,所以我做了一个CppUnit1.12.1的源码包网盘的公开链接:

 http://pan.baidu.com/share/link?shareid=1903199222&uk=556148328

tar-xzf cppunit-1.12.1.tar.gz

cd cppunit-1.12.1

./configure

make

make check

sudo make install

       本来没有什么好说的,关键是出了点问,在使用make时报错了。错误如下:

/bin/bash ../../libtool --tag=CXX   --mode=link g++  -g -O2 -ldl  -o DllPlugInTester DllPlugInTester.o CommandLineParser.o ../../src/cppunit/libcppunit.la -lm
mkdir .libs
g++ -g -O2 -o .libs/DllPlugInTester DllPlugInTester.o CommandLineParser.o  -ldl ../../src/cppunit/.libs/libcppunit.so -lm 
../../src/cppunit/.libs/libcppunit.so: undefined reference to `dlsym'
../../src/cppunit/.libs/libcppunit.so: undefined reference to `dlopen'
../../src/cppunit/.libs/libcppunit.so: undefined reference to `dlclose'
collect2: error: ld returned 1 exit status
make[2]: *** [DllPlugInTester] Error 1
make[2]: Leaving directory `/home/xc-pc/software/cppunit-1.12.1/src/DllPlugInTester'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/xc-pc/software/cppunit-1.12.1/src'

make: *** [all-recursive] Error 1
也不知道是因为自己的自己的所安装的CppUnit的版本的问题还是其他的问题。(看起来这个错误够吓人,对比到CppUnit的Makefile文件有800多行,就会觉得出个错误没什么)

解决方案:

     从上面的出现的错误可以看出,是cppunit-1.12.1/src/DllPlugInTester目录下编译发生了错误,也就是说是那个目录下的Makefile出了问题,cd 到cppunit-1.12.1/src/DllPlugInTester目录,使用vi(或者其他的编辑器,如emacs,gedit)打开Makefile.找到LIBS= -lm,将LIBS= -lm  改为LIBS= -lm -ldl 

    需要进行相应的修改

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值