4

我的设置如下:

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

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

总结一下:

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

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

4

1 回答 1

3

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

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

Console.SetOut(TestContext.Progress);
于 2017-05-17T18:18:54.407 回答