// main函数
#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 (int argc, char *argv[])
{
// 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 );
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(0);
}
1 定义一个测试结果控制器
2 定义一个结果收集器,并加入到结果控制器
3 定义一个测试运行对象
4 添加所有注册的用例
5 运行用例,并将结果写入测试结果控制器
6 将测试结果写入到文件/流
// 单个测试用例
#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>
class BM_TCase : public CPPUNIT_NS::TestCase
{
CPPUNIT_TEST_SUITE(BM_TCase);
CPPUNIT_TEST(add);
CPPUNIT_TEST_SUITE_END();
void add()
{
CPPUNIT_ASSERT(false);
}
};
CPPUNIT_TEST_SUITE_REGISTRATION(BM_TCase);
1 从CPPUNIT_NS::TestCase派生一个测试用例
2 编译测试用例方法段
CPPUNIT_TEST_SUITE(BM_TCase);
CPPUNIT_TEST(add);
CPPUNIT_TEST_SUITE_END();
3 实现相关的测试方法
4 将用例注册