Google 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);
}
}

image

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) 这一行设置断点,可以可看到:

image

按下 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;
}

image

参考资料

posted @   GShang  阅读(1450)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示