C ++ / Visual Studio-如何输出到“测试输出”窗口?

时间:2018-07-24 05:43:55

标签: c++ visual-studio unit-testing mstest

我知道Visual Studio中的记录器,即:

Logger::WriteMessage("foo");

这对于测试代码非常有用,而对于应用程序内部的代码则不太实用。因此,我正在寻找一种标准解决方案来重定向代码内的stdout消息。

1 个答案:

答案 0 :(得分:0)

可以重新分配标准输出流,例如:

// REDIRECT STD STREAM
streambuf * backup;
backup = cout.rdbuf();
stringstream ss;
cout.rdbuf(ss.rdbuf());    

// DO SOMETHING
cout << "foo\n";

// PRINT STREAM TO LOGGER
Logger::WriteMessage(ss.str().c_str());

// ASSIGN COUT BACK TO STDOUT
cout.rdbuf(backup);