【问题标题】:How to display a console window in C# Unit Test?如何在 C# 单元测试中显示控制台窗口?
【发布时间】:2012-12-12 20:36:49
【问题描述】:

我希望能够在我的 C# 单元测试中随意显示一个控制台窗口,稍后我可以在我的代码中处理它以打印语句。有系统命令支持吗?我的意图是调试目的,但我不想使用 log4net 或其他一些 text/xml 文件来完成。

【问题讨论】:

    标签: c# unit-testing debugging console


    【解决方案1】:

    只需使用Console.WriteLine。我使用的每个单元测试运行器都自动捕获控制台输出 - 您不需要实际的控制台窗口。

    【讨论】:

      【解决方案2】:

      如果我正确理解您的问题,请按照以下步骤操作

      1- 右键单击​​控制台项目

      2- 转到应用程序部分

      3- 在名为“输出类型”的下拉列表中选择“控制台应用程序”。

      4- 保存并运行应用程序

      这样做的目的是打开控制台和 winform。无论您在哪里编写 Console.Writeline,它都会显示在控制台中。 (您的表单将继续按原样运行。)

      【讨论】:

        【解决方案3】:

        如果确实需要控制台窗口,可以考虑通过 p/Invoke 访问 AllocConsole:

        http://pinvoke.net/default.aspx/kernel32/AllocConsole.html

        【讨论】: