今天参考surt的“[教學]MinGW+Cygwin+CppUnit用Eclipse撰寫CppUnit測試程式 [精華]”一文,搭建了一个cppunit的单元测试环境。
做了几年C/C++开发,一直想要把单元测试加上,因为工作安排,做了一小段时间的java,更坚定了搭建c++单元测试环境的想法,但不得不说cppunit的配置实在是有些繁琐,MinGW的安装还好说,cygwin安装实在是太慢,可怜的网速让我数次终止了它的安装,幸运的是在公司的电脑上居然发现了cygwin的安装包,于是就开始了我的cppunit的测试旅程。
下面是我的安装环境:
OS:Windows XP Professional SP3
Eclipse 3.3.2 + CDT 4.0.1 + MinGW 5.1.4 + cygwin 1.5.5
cppunit 1.12.1
主要过程和surt文中基本一致,细节可以参考原文,下面说说我遇到的一些问题:
1、configure的时候报“dirname”参数错误,看到makefile已经生成,也懒得深究,也就忽略了,直接make了。
2、make也不顺利,居然找不到make文件,一看居然是马甲“mingw32-make.exe”,运行一下“mingw32-make”,还是不行,改回原名,开始编译了。
3、由于安装了doxygen,编译的过程生成cppunit的文档,但一直报dot的dll错误,找到“doc/makefile”文件,直接注释掉“html/index.html: Doxyfile $(doxygen_input)”后面的动作,再运行OK,如果需要文档的话可以修改一下doc下Doxyfile文件,去掉图片的生成即可,或者切换到windows下进行文档生成。
4、想要make install,基本没执行就直接报错,唉,又得手动来了,其实很简单,复制src/cppunit/.libs/libcppunit.a到MinGW/lib目录下,复制include/cppunit到MinGW/include目录下就可以了。
5、环境差不多搭建好了,编译一下测试程序。汗,全是红色,居然忘记添加库文件了。右键“工程名”--属性--C/C++ Build--settings--Tool settings--MinGW C++ Linker--Libraries,在右边“Libraries (-l)”栏中填加“cppunit”,确定后,再编译。呵呵,又OK了!
到此,第一个单元测试用例可以运行了。
又测试添加了一个测试用例,testEchoHello();代码如下:
void HelloTestCase::testEchoHello()
{
printf("Hello, cppunit!/n");
}
修改头文件,添加一下两行内容(具体位置可参考源程序中类似的地方):
CPPUNIT_TEST(testEchoHello);
void testEchoHello();
运行一下,再次OK!
本文只是cppunit环境搭建过程和简单的测试体验,更多的内容还得进一步的摸索。
参考:
surt:[教學]MinGW+Cygwin+CppUnit用Eclipse撰寫CppUnit測試程式 [精華]
兽族的荣耀:cppunit helloworld详尽篇