【问题标题】:R# 2016 (10) + NUnit 3 - How can I get output to show during a test run?R# 2016 (10) + NUnit 3 - 如何在测试运行期间显示输出?
【发布时间】:2017-03-15 11:34:18
【问题描述】:

我的设置如下:

  • Visual Studio 2015 专业版 2015
  • ReSharper Ultimate 2016.1.2
  • NUnit 3.4.1

由于颚化,NUnit 3 取消了在测试运行器窗口中即时显示 Console.Write 输出(请参阅this documentation page)。当想要在测试运行时查看输出时,这会产生问题,如in this NUnit issue 所述。解决方案(据我所知!)是引入 TestContext.Progress 以便能够即时写入测试输出窗口(在 NUnit 控制台中)。但是,我已经用 ReSharper 进行了尝试,但它根本没有显示出来(即使在测试完成运行之后)。

总结一下:

  • Console.Write 在测试完成运行后附加到测试结果输出中
  • TestContext.WriteTestContext.Out.Write的缩写)直接发送到测试结果输出,但只有在测试完成后才会显示
  • TestContext.Progress.Write 将直接发送到控制台
  • Resharper 将在测试完成运行后显示 TestContext.WriteConsole.WriteTestContext.Progress.Write 根本不显示李>

ReSharper 可以即时显示任何输出吗?为此应使用哪种方法?

【问题讨论】:

    标签: unit-testing nunit resharper nunit-3.0 resharper-10.0


    【解决方案1】:

    Console 类有一个SetOut 方法,可让您将输出重定向到某个TextWriter。您可以在测试夹具设置中使用它。

    在类似设置上使用 ReSharper 测试运行程序时,这对我有用:

    Console.SetOut(TestContext.Progress);
    

    【讨论】:

    • 但这会将控制台定向到 TestContext.Progress,这似乎无法解决发送到 TestContext.Progress 的文本未显示的问题。如果有的话,它应该会让情况变得更糟。
    猜你喜欢
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 2021-08-30
    相关资源
    最近更新 更多