I'm using xUnit with the ReSharper test runner and the xUnitContrib resharper plugin.
When I have a long-running test, I'd like to be able to output some progress indicator to the Unit Test Output window.
I've tried Debug.WriteLines
, Trace.WriteLine
and Console.WriteLine
. All of which have the same behavior - nothing shows in the output window until the test has completed.
For example:
[Fact]
public void Test()
{
Debug.WriteLine("A");
Trace.WriteLine("B");
Console.WriteLine("C");
Thread.Sleep(10000);
}
The test shows no output until the 10 seconds have elapsed and the test completes. How do I get output along the way?
UPDATE 1
I tried also with MSTest and NUnit. NUnit is the only one that shows output along the way.
MSTest and XUnit don't return any output until the test completes. The weird part is that while the XUnit and NUnit test output looks like this:
A
B
C
The MSTest output looks like this:
C
Debug Trace:
A
B
Given all of these variations, I think the answer is that it is up to the test runner implementation to decide how and when to output. Does anyone know if it is possible to configure the XUnit test runner?
UPDATE 2
I think this must be a deficiency in xUnitContrib. Posted to their CodePlex issue tracker.