NUnit 文本输出不正常

NUnit text output is not behaving

我有以下测试:

[Test]
public void LogTest()
{
    TestContext.WriteLine("Hello");
    TestContext.Error.WriteLine("Ergh");
    TestContext.Out.WriteLine("Out");
    TestContext.Progress.WriteLine("Is this progress?");
}

应该写入 NUnit 日志 (?)。

当我使用 ReSharper 运行 时,我只得到单元测试会话 window.

中显示的字符串 HelloOut

当它是 运行 和 NC运行ch 时,我根本没有得到任何输出。

  1. 这是为什么?
  2. 我应该怎么做?

None 的 NUnit 的 Write 语句写在任何地方!它们被转换为消息,然后由运行器作为事件处理。输出被发送到跑步者决定它应该去的任何地方。

在测试中 Console.Write 也是如此,因为 NUnit 拦截了它。

对于您正在使用的跑步者:

  • 确保您拥有最新版本的 ReSharper。 TestContext.Error 和 TestContext.Progress 创建一条新消息,您的版本可能无法处理该消息。联系 JetBrains 人员,看看他们支持什么。

  • 对于NCrunch,我也会检查你的版本。 NCrunch 非常密切地跟踪 NUnit,如果最新版本不能处理所有问题,我会感到惊讶。

要暂时查看消息,请使用 NUnit 3 控制台运行程序。