相关疑难解决方法(0)

使用ReSharper,如何在长时间运行的单元测试中显示调试输出?

我正在使用xUnit和ReSharper测试运行器以及xUnitContrib resharper 插件.

当我有一个长时间运行的测试时,我希望能够将一些进度指示器输出到Unit Test Output窗口.

我试过了Debug.WriteLines,Trace.WriteLine而且Console.WriteLine.所有这些都具有相同的行为 - 在测试完成之前,输出窗口中没有显示任何内容.

例如:

[Fact]
public void Test()
{
    Debug.WriteLine("A");
    Trace.WriteLine("B");
    Console.WriteLine("C");

    Thread.Sleep(10000);
}
Run Code Online (Sandbox Code Playgroud)

测试显示没有输出,直到10秒钟结束并且测试完成.我如何获得输出?

更新1

我也试过MSTest和NUnit.NUnit是唯一一个在整个过程中显示输出的人.

在测试完成之前,MSTest和XUnit不会返回任何输出.奇怪的是,XUnit和NUnit测试输出如下所示:

A
B
C
Run Code Online (Sandbox Code Playgroud)

MSTest输出如下所示:

C


Debug Trace:

A
B
Run Code Online (Sandbox Code Playgroud)

鉴于所有这些变化,我认为答案是由测试运行器实现决定如何以及何时输出.有谁知道是否可以配置XUnit测试运行器?

更新2

我认为这必须是xUnitContrib的一个缺陷.发布到他们的CodePlex问题跟踪器.

c# resharper unit-testing xunit visual-studio

33
推荐指数
5
解决办法
1万
查看次数

标签 统计

c# ×1

resharper ×1

unit-testing ×1

visual-studio ×1

xunit ×1