【问题标题】:Visual Studio native unit testing: Debug/console output?Visual Studio 本机单元测试:调试/控制台输出?
【发布时间】:2015-08-12 05:58:05
【问题描述】:

在 Visual Studio 2012 的本机 (C++) 测试项目中运行单元测试时,谁能告诉我如何启用或获取调试或控制台文本输出?

答案不应包含短语“使用 Google 测试”。

【问题讨论】:

  • 将子系统切换到控制台会有帮助吗? (项目属性/链接器/系统)
  • 好主意,但可惜,没有。我的代码使用 OutputDebugStringA 和 OutputDebugStringW 输出文本。我想我需要使用其他库?
  • 我解决了它。如果您右键单击并在测试资源管理器窗口中的任何测试上选择“调试”,则调试输出将显示在调试输出窗口中。否则不会。

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


【解决方案1】:

如果您右键单击并在测试资源管理器窗口中的任何测试上选择“调试”,则调试输出会显示在调试输出窗口中。否则不会。

【讨论】:

  • 主菜单 -> 测试 -> Windows -> 测试资源管理器,然后右键单击窗口中的一个测试以调出其上下文菜单并从中选择调试。
  • 这在 VS 2017 中似乎是真的,使用 OutputDebugString(L"Message");
【解决方案2】:

在单元测试代码中,可以使用

Logger::WriteMessage("My message string");

消息将出现在“输出”窗口中。

【讨论】:

  • 如果你有 #include "CppUnitTest.h" 并且在 TEST_CLASS 中的 TEST_METHOD 上下文中,但不是在任何地方都可以工作。
【解决方案3】:

Brian 的回答是正确的。使用

Logger::WriteMessage("some text");

并正常运行测试(无需调试)。但是,您还需要在“输出”窗口顶部的“显示输出自”下拉列表中选择“测试”。

VS 2013 Output window with Tests output selected

【讨论】:

  • Visual Studio 2019 中的 UI 保持不变:“输出”窗口顶部有一个“测试”选项,输出将出现在此处。
猜你喜欢
  • 2014-11-05
  • 2013-05-24
  • 1970-01-01
  • 2016-10-30
  • 2017-11-23
  • 1970-01-01
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多