您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > cppUnit
软件测试实验学习笔记--CppUnit
作者: 发布时间:[ 2013/12/17 9:32:47 ] 推荐标签:

  CppUnit单元测试工具

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

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

  通过派生TestFixture类来设计某个类或某组相关功能的单元测试,Fixture定义公共函数setUp()初始化每个成员变量,tearDown()来释放setUp中使用的资源。在每个测试中,CPPUNIT_ASSERT(bool)来判断某个函数和表达式的正确性,在派生类的声明中,通过CPPUNIT_TEST来增加对应的测试函数,通过CPPUNIT_TEST_SUITE和CPPUNIT_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

  需要进行相应的修改的还有cppunit-1.12.1/examples/simple目录下的Makefile文件.

  至此,再重新make一下,可以看到没有报错了。然后可以继续下去了。如果嫌源代码安装的方式太过于繁琐,尤其是出了问题之后。

上一页1234下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd