- 通过一系列的宏自动生成每个测试类(使用"firstName##lastName"形式进行字符串连接,使用"#name"形式作为字符串参数);
- 通过测试类的全局变量定义自动在构造函数中完成测试类的注册工作;
- 通过单实例的TestRegistry对象完成测试类的收集与客户端的调用工作;
- 由于全局实例都是在main方法之前生成,在程序进入main方法时就可以直接运行内部已经注册的各测试类,客户端只要如下调用即可完成各测试类的运行:
TestResult tr; TestRegistry::runAllTests(tr); - 对命令行的增强处理,做了下封装:CommandLineTestRunner::RunAllTests(argc, argv);
参考资料:
- 短小精悍的C++单元测试框架CppUnitLite源码分析(http://www.cnblogs.com/gpcuster/archive/2009/02/08/1386146.html)
- C++测试框架的选择(http://www.cppblog.com/jinq0123/archive/2010/04/13/112430.html)