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