首页 > 其他分享 >Google Test 自带一些小功能

Google Test 自带一些小功能

时间:2023-10-27 15:35:56浏览次数:33  
标签:std Google color test COLOR gtest internal Test 自带

控制台彩色打印

TEST(test, colored_print)
{
	using namespace testing::internal;
	std::map<GTestColor, std::string> ColorMap = 
	{
		{COLOR_RED, "红色"},
		{COLOR_GREEN, "绿色"},
		{COLOR_YELLOW, "黄色"}
	};

	for (auto color:ColorMap)
	{
		ColoredPrintf(color.first, "这是%s\n", color.second);
	}
}

Google Test 自带一些小功能_gtest

Log日志打印

TEST(test, gtest_log)
{
	GTEST_LOG_(INFO)    << "打印 INFO 级别信息";
	GTEST_LOG_(WARNING) << "打印 WARNING 级别信息";
	GTEST_LOG_(ERROR)   << "打印 ERROR 级别信息";
	GTEST_LOG_(FATAL)   << "打印 FATAL 级别信息(FATAL直接退出程序)";
}

GTEST_LOG_(FATAL) 这一行设置断点,可以可看到:

Google Test 自带一些小功能_重定向_02

按下 F10 后,打印 FATAL 信息并退出程序。

标准输出流&标准错误输出流重定向

TEST(test, redirect_std_stderr)
{
	/*
	关于std::cout 和 std::cerr的用法 :https://www.python100.com/html/4DPP58DQW140.html
	*/
	using namespace testing::internal;
	CaptureStdout();
	for (int i = 0; i < 5; i++)
	{
		std::cout << "标准输出流测试文字" << i << std::endl;
	}

	std::string stdOutput = GetCapturedStdout();
	std::cout << "重定向内容如下:\n" << stdOutput << std::endl;

	std::cout << "\n再次打印标准输出流测试文字" << std::endl;

	std::cout << "------------------------------------" << std::endl;

	CaptureStderr();
	std::cout << "标准输出流测试文字" << std::endl;

	std::cerr << "标准错误输出流测试文字"<< std::endl;
	std::string stdErrOutput = GetCapturedStderr();
	std::cout << "\n重定向内容如下:\n" << stdErrOutput << std::endl;

	std::cerr << "\n再次打印标准错误输出流测试文字" << std::endl;
}

Google Test 自带一些小功能_输出流_03

参考资料

未经作者授权,禁止转载

THE END



标签:std,Google,color,test,COLOR,gtest,internal,Test,自带
From: https://blog.51cto.com/gshang/8058163

相关文章

  • pytest设置随机执行case 顺序
    1.安装包  pytest-randomly(这个能成)2. 在class上设置  @pytest.mark.random_orderclassTestMulit:3.设置每条case执行的次数@pytest.mark.repeat(set_ratio.multiple_01)#设置该条case执行的次数这个次数顺序也是混合到总数中的随机执行@allure.title......
  • pytest-yaml 测试平台-3.创建执行任务定时执行用例
    前言当项目用例编写完成后,需设置执行策略,可以用到定时任务设置每天几点执行。或者间隔几个小时执行一次。创建定时任务创建任务勾选需要执行的项目以及运行环境触发器可以支持2种方式:interval间隔多久触发和cron表达式定时执行方式1:interval触发器,间隔10分钟执行一次,......
  • pytest + yaml 框架 -55. raw 不转义模板语法
    前言在yaml文件中,设置的引用变量语法是${var},最近有小伙伴提到一个需求:请求参数的内容需要有特殊符号${var},希望不被转义,不要引用变量,直接用原始数据即可。raw忽略模板语法Jinja2提供了"raw"语句来忽略所有模板语法。语法示例{%raw%}hello${var}world!{%endraw%......
  • AtCoder Beginner Contest 216 H Random Robots
    洛谷传送门AtCoder传送门下文令\(n\)为原题中的\(K\),\(m\)为原题中的\(N\)。首先概率转方案数,最后除\(2^{nm}\)即可。考虑一个指数级暴力:枚举每个bot的终点\(y_i\)(因为存在不能相交的限制,需要满足\(y_1<y_2<\cdots<y_n\)),相当于为每个bot选一个\((0,x_i)......
  • 给google浏览器配独立ip
     参数为:--proxy-server="127.0.0.1:1234"google浏览器中的属性: 类似如下:C:\ProgramFiles\Google\Chrome\Application\chrome.exe"--user-data-dir=D:\chrome\102--proxy-server="127.0.0.1:1234"......
  • 基于Googlenet深度学习网络的信号调制类型识别matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本MATLAB2022a 3.算法理论概述      信号调制类型识别是在无线通信和无线电频谱监测中的一个重要任务。不同信号调制类型具有不同的频谱特征,深度学习方法在信号调制类型识别中取得了显著的成果。 3.1深度学习与......
  • Google三驾马车之二:MapReduce
    第一次接触mr还是在入门mit6.824的lab1,最近重新读了一遍原始论文,又有了一些新的想法,简单做一些记录。作为Google分布式系统的重要组成,本篇文章核心在于map/reduce操作带来的抽象并行化,给出接口之后,编写应用程序的程序员就不需要对底层的机制做过多的处理。而在本质上,mr只是实现了......
  • AtCoder Regular Contest 164 F Subtree Reversi
    洛谷传送门AtCoder传送门非常好题目。发现每个点颜色被反转的次数是固定的,为其深度(根结点深度为\(0\))。于是可以看作是,一放棋子就得到分数。那么先手取偶数层和后手取奇数层都会使先手得分,所以双方的目标都是尽可能多取偶数层的结点。考虑若一开始有偶数层的叶子,那么当前的......
  • The 2021 ICPC Asia Macau Regional Contest
    \(C.LaserTrap\)根据题意不难判断出需要极角排序,然后对于每个点寻找更小的一个\(180\)度的点数。即使听说是用双指针实现查找依旧没什么思路。后来看了别人的实现方法发现确实比较简单,甚至只需要维护极角就可以了。constlongdoublepi=acosl(-1);voidsolve(){int......
  • 超好用的IDEA插件推荐!自带API调试功能
    大家好,今天给大家推荐一款超好用的IDEA插件,由API调试工具Apipost推出!支持在插件中获取token、支持代码完成后在插件中进行API调试,同时也保留了1.0版本部分功能如上传选择目录功能等。V1版本还会继续保留开源,方便各位进行自创魔改。V2版本目前已上架至IDEA插件商店,大家可以自行下......