如何在Visual Studio 2012单元测试中获取控制台输出

bra*_*ing 23 c++ unit-testing cout visual-studio-2012 test-explorer

我在VS 2012中有一个托管C++单元测试.测试运行正常,我可以验证是否cout执行了多个调用的循环.

但是,当我查看测试资源管理器时,测试标记为已通过,但输出没有超链接,因为我习惯于c#项目.

我测试结束时的代码是

for (int i = 0; i < 4; i++)
{
    cout << parameters[i];
    cout << endl;
}
Run Code Online (Sandbox Code Playgroud)

当我在调试器中逐步执行它时,我可以验证它.我也试过 cerr但没有区别.

ole*_*arn 18

您可以使用Debug :: WriteLine()(在System :: Diagnostics命名空间中)或Console :: WriteLine()将输出写入Visual Studio 2012控制台.

测试代码(注意System :: Diagnostics命名空间在其他地方声明). 考试

测试结果视图.

在此输入图像描述

单击"输出"链接后:

在此输入图像描述

它不是使用std :: cout,但希望这可以做你需要它做的事情.

  • 有什么办法可以直播吗?这在NUnit中是可能的. (2认同)

Han*_* N. 16

对我来说似乎工作使用:

Logger::WriteMessage("What ever message");

运行测试后,您可以Test Explorer通过单击查看窗口中的输出output

  • @MatthewJamesBriggs这是在C++而不是在C#中,所以我认为没有任何参考. (2认同)