Ich benutze XUnit mit dem ReSharper Test Runner und dem xUnitContrib Resharper Plugin.Mit ReSharper, wie Debug-Ausgabe während eines lang laufenden Komponententests angezeigt wird?
Wenn ich einen lang andauernden Test habe, würde ich gerne in der Lage sein, eine Fortschrittsanzeige in das Unit Test Output Fenster auszugeben.
Ich habe versucht Debug.WriteLines
, Trace.WriteLine
und . Alle haben das gleiche Verhalten - im Ausgabefenster wird nichts angezeigt, bis der Test abgeschlossen ist.
Zum Beispiel:
[Fact]
public void Test()
{
Debug.WriteLine("A");
Trace.WriteLine("B");
Console.WriteLine("C");
Thread.Sleep(10000);
}
Der Test zeigt keine Ausgabe, bis die 10 Sekunden verstrichen sind, und der Test abgeschlossen ist. Wie kann ich auf dem Weg ausgegeben werden?
UPDATE 1
Ich habe auch versucht mit MSTest und NUnit. NUnit ist die einzige, die die Ausgabe auf dem Weg zeigt.
MSTest und XUnit geben keine Ausgabe zurück, bis der Test abgeschlossen ist. Das seltsame ist, dass während der XUnit und NUnit-Test Ausgabe wie folgt aussieht:
A
B
C
Die MSTest Ausgabe wie folgt aussieht:
C
Debug Trace:
A
B
alle diese Variationen gegeben, ich denke, die Antwort ist, dass es ist es Sache der Testläufer-Implementierung zu entscheiden, wie und wann sie ausgeben soll. Weiß jemand, ob es möglich ist, den XUnit Test Runner zu konfigurieren?
UPDATE 2
Ich denke, dies ist ein Mangel in xUnitContrib sein muss. Veröffentlicht zu ihrer CodePlex issue tracker.
Debug.WriteLine() funktioniert perfekt Gut für mich, wenn ich im Debug-Modus bin. Wenn Sie sich also allgemein anmelden möchten, empfehle ich Brentons Antwort – derape
@derape - Nein, es funktioniert nicht mit xunit. Keine Ausgabe erscheint, bis der Test abgeschlossen ist. –
Ich sehe, ich habe nicht mit XUnit gespielt - nur NUnit. Und NUnit-Protokollierung funktioniert entlang der Debug-Threads ... – brenton