我正在使用

  • Visual Studio 2015(14.0.25431.01 Update 3)

  • Resharper Ultimate 2018.2.3(build 2018-09-12)

  • Windows 10 x64 v1803

  • .NET Framework 4.5.2

我想要的是能够在resharper单元测试运行器中运行单元测试并将输出STREAM输出到输出窗口 .

(顺便提一下,这对我来说如此重要的部分原因是因为this . 所以是的,这是一个单位测试滥用的一点点,但不幸的是我还没有找到一个好的系统来替换它 . )

我尝试过的:

NUnit

  • 创建新的控制台项目(目标框架.NET Framework 4.5.2)

  • Nuget安装NUnit 3.11.0

  • 创建单元测试:

[Test]
public void HelloWorld()
{
    Debug.Listeners.Add(new DefaultTraceListener());
    Console.WriteLine("asdf");
    Debug.WriteLine("asdf");
    Thread.Sleep(10000);
    Console.WriteLine("asdf2");
    Debug.WriteLine("asdf2");
}

当我运行它时,它只在测试完全完成时显示输出,10秒钟 . 我想要的是基本上立即显示第一个'asdf' .

我试过的随机事情来自this thread .

据我所知,单元测试运行器甚至看起来在测试运行后它已经准备好开始接受输出 . 中途穿过它看起来像这样:

enter image description here

那时它正在做 Thread.Sleep . 我希望看到 asdf

一旦完成,它看起来像这样:

enter image description here

我知道在过去这曾经按照我的意愿工作,但这可能是所有软件的旧版本(Visual Studio,Resharper,.NET Framework,NUnit)

xUnit 1.创建新的控制台项目2. Nuget安装NUnit 3.11.0 3.创建单元测试:

[Fact]
    public void HelloWorld()
    {
        Debug.Listeners.Add(new DefaultTraceListener());
        Console.WriteLine("asdf");
        Debug.WriteLine("asdf");
        Thread.Sleep(10000);
        Console.WriteLine("asdf2");
        Debug.WriteLine("asdf2");
    }

在这一个我根本没有得到任何输出 .

enter image description here

我想这可能与上一篇文章中提到的bug有关,但不同之处在于他至少得到了一些东西 . 事实上,我正在经历他与使用xUnit但我使用NUnit相关的行为,但是当我使用xUnit时遇到不同的行为对我来说有点不利 .

我的用例在这里并不复杂,因为我所做的只不过是创建一个全新的项目,添加包然后尝试使用它 . 有没有办法可靠地让这个工作?