NUnit文本输出表现异常

3

我有以下的测试:

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

应该写入到NUnit日志中,对吗?

当我在ReSharper上运行它时,只有字符串HelloOut显示在Unit Test Sessions窗口中。

当使用NCrunch运行它时,完全没有输出。

  1. 为什么会这样?
  2. 我应该如何处理这个问题?
1个回答

3

NUnit的所有Write语句都无法直接写入任何地方!它们被转换为消息,由运行器作为事件处理。输出被发送到运行器决定的任何位置。

这甚至适用于测试中的Console.Write,因为NUnit会拦截它。

对于您正在使用的运行器:

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

  • 对于NCrunch,我还会检查您拥有的版本。 NCrunch密切跟踪NUnit,如果最新版本无法处理所有内容,我会感到惊讶。

要暂时查看消息,请使用NUnit 3-console运行器。


谢谢Charlie。我正在使用最新版本的两个软件(不过当我回到办公室时,我会再次确认一下)。 - BanksySan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接