catch2:一个好用的C++单元测试框架

Catch2 是一个 C++ 的单元测试框架,但它也提供基本的微基准测试功能和简单的 BDD 宏(可参考开发人员看测试之TDD和BDD)。相比于其他测试框架Catch2使用起来只需要一个头文件,既简单又自然,测试时能自动注册,不必用有效的标识符再命名,另外断言看起来像普通的 C++ 代码,更详细的介绍见 Why Catch

一、下载

相关版本见Release
选择好版本后在Assets里面下载catch.hpp文件

二、使用

参照Tutorial

示例

  • Test.cpp
#define CATCH_CONFIG_MAIN  // 当前宏强制Catch在当前编译单元中创建 main(),这个宏只能出现在一个CPP文件中,因为一个项目只能有一个有效的main函数
#include <catch.hpp>

TEST_CASE("core::io::First", "[test]")
{
	int a = 1;
	REQUIRE(a == 1);
}

TEST_CASE("core::io::Second", "[test]")
{
	int a = 1;
	REQUIRE(a == 2);
}

#define CATCH_CONFIG_MAIN定义了catch的main函数, 编译后在生成目录下会有一个可执行文件,直接执行即可运行测试用例及输出相关信息


也可以直接运行指定的某个测试用例, 可执行文件后面 + 测试名称

Visual Studio 显示测试窗口

Visual studio打开测试窗口,可以参照TestAdapter_Catch2
安装后点击重新生成,打开菜单栏 测试 ==> 测试资源管理器就可以看到测试用例

三、参考链接

catch2:一个好用的C++单元测试框架
开发人员看测试之TDD和BDD
Catch2——C++测试框架(Quick Start)
Test Adapter for Catch2

posted @ 2021-03-25 19:38  半夜打老虎  阅读(1950)  评论(0)    收藏  举报