我正在使用ReSharper测试运行器和xUnitContrib Resharper插件的xUnit。
当我有一个长时间运行的测试时,我想能够在单元测试输出窗口中输出一些进度指示器。
我尝试过Debug.WriteLines、Trace.WriteLine和Console.WriteLine。所有这些都有相同的行为-直到测试完成,输出窗口才不会显示任何内容。
例如:
测试在10秒钟结束并完成之前不会输出任何内容。我该如何获得实时输出?
更新1: 我也尝试了MSTest和NUnit。只有NUnit可以实时输出。 MSTest和XUnit直到测试完成才返回任何输出。奇怪的是,虽然XUnit和NUnit的测试输出看起来像这样:
鉴于所有这些变化,我认为答案是由测试运行程序实现决定如何和何时输出。有人知道是否可以配置XUnit测试运行程序吗?
更新2:
我认为这一定是xUnitContrib的缺陷。已经发布到他们的CodePlex问题跟踪器。
当我有一个长时间运行的测试时,我想能够在单元测试输出窗口中输出一些进度指示器。
我尝试过Debug.WriteLines、Trace.WriteLine和Console.WriteLine。所有这些都有相同的行为-直到测试完成,输出窗口才不会显示任何内容。
例如:
[Fact]
public void Test()
{
Debug.WriteLine("A");
Trace.WriteLine("B");
Console.WriteLine("C");
Thread.Sleep(10000);
}
测试在10秒钟结束并完成之前不会输出任何内容。我该如何获得实时输出?
更新1: 我也尝试了MSTest和NUnit。只有NUnit可以实时输出。 MSTest和XUnit直到测试完成才返回任何输出。奇怪的是,虽然XUnit和NUnit的测试输出看起来像这样:
A
B
C
MSTest的输出如下:
C
Debug Trace:
A
B
鉴于所有这些变化,我认为答案是由测试运行程序实现决定如何和何时输出。有人知道是否可以配置XUnit测试运行程序吗?
更新2:
我认为这一定是xUnitContrib的缺陷。已经发布到他们的CodePlex问题跟踪器。