美文网首页
C++11 模板元编程 - 测试报告

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

作者: MagicBowen | 来源:发表于2016-09-16 09:59 被阅读165次

我们知道一个完整的测试框架还需要有用例过滤和用例统计汇报的功能。由于模板元编程基本没有任何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模板元编程 - 目录

相关文章

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

    我们知道一个完整的测试框架还需要有用例过滤和用例统计汇报的功能。由于模板元编程基本没有任何IO能力,所以用例过滤和...

  • C++11 模板元编程 - 元编程

    从本节开始我们将模板元编程当做一门独立的函数式语言来讨论它的方方面面。 所谓元编程,就是指可以产生程序的程序。由于...

  • C++11 模板元编程 - 模板元编程的应用

    本节开始我们通过使用C++模板元编程去解决一些实际问题,来展示模板元编程针对现实问题的使用方法和设计技巧。本节中的...

  • C++11 模板元编程 - 模板递归

    模板可以被递归调用,在模板递归的过程中,可以执行前面我们提到的两种编译期计算:数值计算和类型计算。 下面我们用模板...

  • C++11 模板元编程 - 元函数

    我们继续演进前面那个无聊的类型计算的例子,来得出元函数的定义。 前面我们实现了PointerOf,它对于传进的任意...

  • C++11 模板元编程 - 后记

    当1994年,Erwin Unruh在C++标准委员会上演示了通过C++模板在编译期计算素数的程序后,C++模板元...

  • C++11 模板元编程 - 前言

    熟悉C++的程序员都知道,C++是一门多范式编程语言,支持面向过程、面向对象、泛型编程以及函数式编程范式。然而提到...

  • C++11 模板元编程 - 目录

    前言 模板的基础知识模板的类型参数模板的默认参数模板的模板参数模板的特化模板的非类型参数模板的编译期计算数值计算类...

  • C++11 模板元编程 - 递归

    函数式语言依赖模式匹配和递归完成类似命令式语言里分支选择和循环迭代的功能。模板元编程中可以完成模式匹配的两种方式上...

  • C++11 模板元编程 - 惰性

    C++对模板的具现化采用尽量惰性的原则。只有当你使用了模板的内部定义,编译器才会为模板生成对应的定义。 所以对于元...

网友评论

      本文标题:C++11 模板元编程 - 测试报告

      本文链接:https://www.haomeiwen.com/subject/mkxiettx.html