计算机 · 2021年8月13日 0

Catch2

Catch2测试框架

https://github.com/catchorg/Catch2/tree/v2.13.7

优点:

  • 使用简单,只需要包含头文件,没有额外的依赖,只要能编译C++11和包含了stl即可;
  • 测试用例内部逻辑可以分section,可以给测试用例打tag;
  • 只有一个核心的断言宏;
  • 测试用例的名字随便取;
  • 可以格式化输出;

教程

https://github.com/catchorg/Catch2/blob/v2.13.7/docs/tutorial.md#top

关键的宏:

  • CATCH_CONFIG_MAIN
    让Catch2自己生成main函数
  • TEST_CASE
    声明一个testcase
  • SECTION
    声明testcase可以走的不同的分支
  • REQUIRE
    断言的宏

使用自己的main函数

https://github.com/catchorg/Catch2/blob/2c269eb6332bc1dd29047851ae1efc3cd4c260d2/docs/own-main.md

catch原生提供的命令行参数

https://github.com/catchorg/Catch2/blob/v2.13.7/docs/command-line.md#top