C++11 模板元编程 - 测试报告


我们知道一个完整的测试框架还需要有用例过滤和用例统计汇报的功能。由于模板元编程基本没有任何IO能力,所以用例过滤和统计只能借助别的手段(对于用例统计汇报,倒是可以在元编程范畴内完成,但是用例统计结果靠编译告警打印出来格式太难看)。因此我们最后还是使用了一些运行期C++的IO能力。

我们在FIXTURETEST的宏里面加了一些针对fixture和testcase的注册代码,用户定义的所有fixture和test都会被统计到。如果你希望最终能够打印出用例统计结果,那么定义一个main函数,调用一下TLP_REPORT_ALL_TESTS()即可。如下:

#include <tlp/test/Test.hpp>

int main()
{
    TLP_REPORT_ALL_TESTS();

    return 0;
}

实现上述代码后,测试用例就可以编译成一个可执行程序。运行该可执行程序,就会在终端上以我们熟悉的样式打印出所有的fixture和test的统计情况。

注意上述main函数仅是为了输出测试报告。测试用例的运行仍旧是在编译期,一旦编译完成就说明所有测试用例都通过了。如果你不需要测试报告,那么就可以不用实现这个main函数。关于测试用例注册和打印的实现,完全是运行期C++的技术,和本文无关,这里就不再赘述。

至此,整个TLP测试框架涉及到的主要技术就介绍到这里。掌握一门语言最好的方式是从对它进行测试入手,C++模板元编程也不例外。后面对TLP库中其它内容的介绍,都会涉及到对其的测试。如果你还对该测试框架的其它代码细节感兴趣,可以直接访问TLP库,测试框架的所有源代码在"include/tlp/test"目录下。


TLP库

返回 C++11模板元编程 - 目录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,185评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,143评论 25 709
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,993评论 6 342
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,817评论 18 399
  • 喜欢一个人 静静地,轻轻地 像微风对花的耳语 像恋人眸光里的深情 我可以坐在月光里 数着天上的星星 斟着岁月的酒杯...
    烟雨心清阅读 524评论 27 33