Linux中使用CppUnit
参考资料
http://sourceforge.net/projects/cppunit/?source=navbar
http://wenku.baidu.com/view/2d65cc28915f804d2b16c1ad.html
http://www.ibm.com/developerworks/cn/linux/l-cppunit/
一个test suite中包含多个test case,每一个test suite都可以通过下面这个宏来注册:
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( suite_name, suite_description );
TestRunner会检测并运行所有注册的test suite。
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/CompilerOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/TestRunner.h>
int main()
{
// Create the event manager and test controller
CPPUNIT_NS::TestResult controller;
// Add a listener that colllects test result
CPPUNIT_NS::TestResultCollector result;
controller.addListener( &result );
// Add a listener that print dots as test run.
CPPUNIT_NS::BriefTestProgressListener progress;
controller.addListener( &progress );
// Add the top suite to the test runner
CPPUNIT_NS::TestRunner runner;
runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );
runner.run( controller );
// Print test in a compiler compatible format.
CPPUNIT_NS::CompilerOutputter outputter( &result, CPPUNIT_NS::stdCOut() );
outputter.write();
return result.wasSuccessful() ? 0 : 1;
}
如果需要在64bit Linux环境下面编译32位的cppunit,前提是要保证系统正确安装了32位的编译器
然后依次执行:
export CFLAGS="-g -O2 -m32"
export CXXFLAGS="-g -O2 -m32
configure
make
make install