【问题标题】:Use a console window when debugging unit-tests in Visual Studio在 Visual Studio 中调试单元测试时使用控制台窗口
【发布时间】:2018-03-07 13:38:06
【问题描述】:

当我使用 Visual Studio 2017 调试单元测试时,会记录所有控制台输出,我可以通过单击单元测试结果框中的“输出”链接来检查它(我使用的是内置的-在测试资源管理器中)。

但是,由于我在运行时确实向控制台记录了很多日志,这些日志甚至是彩色编码的,所以重要的东西更加明显,我无法使用“输出”链接看到这个彩色编码的输出,因为它只是纯黑色文本在白色背景上。

Visual Studio 是否有可能在调试测试时直接在控制台窗口中显示所有输出,以便我看到的输出与实际在测试之外运行应用程序时看到的一样?

【问题讨论】:

  • 帮自己一个忙,只在看到代码异常时才输出任何内容。没有人对“它运行良好”的输出感兴趣。 “这很糟糕”只有一种颜色,不管是红色还是黑色。
  • 感谢您的提示!在简单的环境中,这很容易遵循。在高级环境中,这当然可以通过按日志级别过滤来实现。在专业环境中,有一些要求,如审计跟踪,甚至想要记录运行良好的事情,只是为了知道它确实发生了。可悲的是,我宁愿在后一种环境中,需要调试一些也可以进行审计跟踪的代码。
  • @Ravior,您是否获得了有关此问题的有用信息?请您分享有关它的最新信息吗?
  • 还没有,但我还在调查。我会尽快尝试一些答案。
  • @Ravior,我期待收到您的来信。如果您有任何最新信息,请随时分享。

标签: visual-studio unit-testing debugging console


【解决方案1】:

您不能(或者至少非常棘手)从单元测试中打开控制台窗口 - 我已尝试使用以下帖子中的前 2 个答案,但它们不起作用:Show Console in Windows Application?

但是,当您使用此代码运行/调试应用程序本身(不是单元测试)时,您可以使 Debug.Write... 方法写入控制台:

ConsoleTraceListener listener = new ConsoleTraceListener();
Debug.Listeners.Add(listener);

在此代码之后对Debug.Write... 方法的任何调用也将输出到控制台。

【讨论】:

    【解决方案2】:

    标准输出是显示测试输出的唯一方式,当我们在测试中使用一些输出方法时,如Debug.WriteLine();Console.WriteLine();等。 我也尝试更改测试输出的字体,但似乎没有那个选项是 VS 2017,即使有人之前提到过:

    Is there a way to change the Font used in the VS2012 Test Output Window?

    this thread 中讨论的类似情况,甚至一些回复声称我们可以手动启动控制台窗口,但他们对此 100% 确定。

    如果您确实需要更改测试输出的字体或颜色,请在 Visual Studio 中转到帮助 -> 向 VS 开发团队发送反馈以提供您的建议。

    【讨论】:

      猜你喜欢
      • 2020-11-09
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-05
      • 2016-10-30
      • 2017-11-23
      • 1970-01-01
      相关资源
      最近更新 更多