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);
}
}
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)
这一行设置断点,可以可看到:
按下 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;
}
参考资料
未经作者授权,禁止转载
THE END