在NUnit中替换Console.WriteLine?

sgt*_*gtz 37 .net c# debugging nunit

之前没有对NUnit做过多少工作,但只是想以控制台类型的方式将一些文本转储到窗口中.

e.g. Console.WriteLine("... some information...");  
Run Code Online (Sandbox Code Playgroud)

这当然不会起作用,因为NUnit正在推动事情发展.

我正在构建一些单元测试,并希望在调试期间转储一个变量值列表以供检查.如果我需要这样做,它不是严格的单元测试,我承认,但这将是方便的.

Tim*_*oyd 42

您可以看到控制台输出,您只需在NUnit GUI运行器中选择"文本输出"选项卡.

在此输入图像描述

更新

如果您使用的是ReSharper测试运行器,则应显示控制台输出.通过单击测试运行器工具栏中的"显示输出"按钮,确保显示测试运行器输出窗口:

在此输入图像描述

然后你应该得到如下内容:

在此输入图像描述

  • 感谢您指出了这一点.我现在意识到我需要安装nunit.目前它通过项目附带的程序集引用运行,我认为resharper已经挂钩了. (3认同)

Ash*_*lax 35

在NUnite v3中,您还可以写入测试结果输出以进行调试

TestContext.Out.WriteLine("Message to write to log");
Run Code Online (Sandbox Code Playgroud)

  • 更好的是 TestContext.Progress.WriteLine(string) 可以连续输出到 Visual Studio 2017 的输出窗口。 (4认同)
  • 或者,甚至更短的 [`TestContext.Write(...)`](https://docs.nunit.org/articles/nunit/writing-tests/TestContext.html#write) 和 [`TestContext.WriteLine(.. .)`](https://docs.nunit.org/articles/nunit/writing-tests/TestContext.html#writeline)。 (2认同)

Pau*_*sey 33

请尝试使用System.Diagnostics.Debug.WriteLine.

  • ``System.Diagnostics.Trace.WriteLine``也将在发布版本中输出. (2认同)

Los*_*311 14

在Visual Studio 2017中,在Test Explorer窗口中,Output下部Test窗格中有一个链接.这会在单元测试期间显示写入控制台的任何内容.

  • 不,没有什么适合我的,至少没有我的写作内容 (2认同)

MrC*_*lan 6

使用测试输出视图。

脚步:

  1. 打开测试资源管理器
  2. 选择任何特定的测试
  3. 如果从未运行过,请运行它。
  4. 单击测试结果窗格上的输出链接。

Console.WriteLine由于此视图记录来自以下位置的消息,因此无需替换任何内容:

控制台写行

Trace.WriteLine

调试.WriteLine

TestExplorer.Out.WriteLine

在此处输入图片说明

  • 这仅适用于未通过的测试,那么对于通过的测试又如何呢? (3认同)