我正在使用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问题跟踪器.