如何在Resharper单元测试会话查看器中获得输出以“流式传输”其输出,而不是在测试结束时将其转储?

时间:2018-10-16 13:30:31

标签: c# unit-testing nunit resharper xunit

我正在使用

  • Visual Studio 2015(14.0.25431.01更新3)
  • Resharper Ultimate 2018.2.3(内部版本2018-09-12)
  • Windows 10 x64 v1803
  • .NET Framework 4.5.2

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

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

我尝试过的事情:

NUnit

  1. 创建新的控制台项目(目标框架.NET Framework 4.5.2)
  2. Nuget安装NUnit 3.11.0
  3. 创建单元测试:

    [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

我想这可能与上一篇文章中提到的错误有关,但不同之处在于他至少得到了一些东西。当我使用xUnit但使用NUnit时,我遇到了与他有关的行为,但是当我使用xUnit时,我遇到了不同的行为。

我的用例在这里几乎不复杂,因为我所做的只是创建一个全新的项目,添加软件包然后尝试使用它。有什么办法可以使我可靠地工作吗?

0 个答案:

没有答案