Wie schreibe ich die Ausgabe eines Komponententests?
Jedes Gespräch in meine unit-tests, um entweder Debug.Write(line)
oder Console.Write(Line)
wird einfach übersprungen, beim Debuggen und der Ausgang ist nie gedruckt. Aufrufe dieser Funktionen innerhalb von Klassen, die ich verwende funktionieren.
Ich verstehe, dass unit-Tests soll automatisiert werden, aber ich möchte noch in der Lage sein zur Ausgabe von Meldungen aus einem unit-test.
InformationsquelleAutor der Frage Chris | 2011-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie es mit
TestContext.WriteLine()
die Ausgänge text in der test-Ergebnisse.Beispiel:
Die "Magie" ist beschrieben in MSDN als "Das test-framework automatisch setzt die Eigenschaft, die Sie dann verwenden können, in unit-tests."
InformationsquelleAutor der Antwort frennky
Sein ein wenig zu spät zum Gespräch.
War ich auch versuchen zu bekommen, Debug oder Trace oder Konsole oder TestContext arbeiten in Unit-Tests.
Keiner dieser Methoden erschien die Arbeit oder zeigen Sie die Ausgabe in das Ausgabefenster.
VS2012 und Mehr
(aus den Kommentaren) In Visual Studio 2012, gibt es kein Symbol. Stattdessen gibt es einen link auf die test-Ergebnisse genannt Ausgabe. Wenn Sie auf den link klicken, sehen Sie alle
WriteLine
.Vor VS2012
Dann bemerkte ich in meinem Testergebnisse Fenster, nach dem ausführen des test, neben der wenig Erfolg grüner Kreis , es gibt ein weiteres Symbol, das ich verdoppelt geklickt. Es war meine test-Ergebnisse, und es wurden alle Arten von writelines oben.
InformationsquelleAutor der Antwort Yogurt The Wise
In Visual Studio 2017, Sie können finden Sie in der Ausgabe von test-explorer.
1) In der test-Methode, Konsole.WriteLine("etwas");
2) Führen Sie den test.
3) Im Test-Explorer-Fenster, klicken Sie auf die bestandene Prüfung-Methode.
4) Und klicken Sie auf die "Output" - link.
Und klicken Sie auf "Output" können Sie sehen, das Ergebnis der Console.Writeline().
InformationsquelleAutor der Antwort user2541924
Ich denke, es ist immer noch aktuell.
Können Sie das NuGet-Paket:
https://www.nuget.org/packages/Bitoxygen.Testing.Pane/
Eigene WriteLine-Methode aus dieser Bibliothek.
Es schafft Testing-Bereich im inneren Output-Fenster und setzt dort die Nachrichten immer (bei jedem test laufen unabhängig von DEBUG-und TRACE-flags).
Machen Spur mehr einfach, kann ich nur empfehlen, zu erstellen Basisklasse:
InformationsquelleAutor der Antwort Maxim
Es kommt auf den test-runner... zum Beispiel, ich bin mit XUnit, also im Falle, dass ist, was Sie verwenden, befolgen Sie diese Anweisungen:
https://xunit.github.io/docs/capturing-output.html
Diese Methode Gruppen Ihre Ausgabe mit jeder bestimmten Einheit testen.
Gibt es eine andere Methode aufgeführt, der link, den ich zur Verfügung gestellt für das schreiben, um Ihre Ausgabe-Fenster, aber ich bevorzuge die früheren.
InformationsquelleAutor der Antwort jonzim
Versuchen Sie es mit:
Console.WriteLine()
Den Aufruf
Debug.WriteLine
nur gemacht werden, während, wenn DEBUG definiert ist.Andere Vorschläge sind zu verwenden:
Trace.WriteLine
als gut, aber ich habe nicht versucht, diese.Gibt es auch eine option (nicht sicher, ob VS2008 hat), aber Sie können immer noch
Debug.WriteLine
wenn Sie den test mitTest With Debugger
option in der IDEInformationsquelleAutor der Antwort VoodooChild
Sind Sie sicher, dass Sie ausführen Ihre unit-tests im Debug? Debug.WriteLine wird nicht caled in Release-builds.
Zwei Optionen, um zu versuchen sind:
Spur.WriteLine(), die gebaut inot release-builds sowie debug
Undefine DEBUGGEN in deinem build-Einstellungen für die unit-test -
InformationsquelleAutor der Antwort Jason Williams
Bekomme ich keine Ausgabe, wenn mein Test/Test-Einstellungen/Standard-Prozessor-Architektur, die Einstellung und die Assemblys, die in meinem test-Projekt-Referenzen sind nicht das gleiche. Ansonsten Spur.Writeline() funktioniert Prima.
InformationsquelleAutor der Antwort Arthur Greef
Ich bin mit xunit also das ist, was ich verwenden:
Debugger.Log(0, "1", input);
PS: Sie können
Debugger.Break();
zu, so dass Sie sehen können Sie sich anmeldenout
InformationsquelleAutor der Antwort Ivandro Ismael
Trace.WriteLine
sollte funktionieren, vorausgesetzt, Sie wählen Sie die richtige Ausgabe (Die dropdown-beschriftet mit "Show-Ausgabe von" im Ausgabe-Fenster)InformationsquelleAutor der Antwort
Gelöst mit dem folgenden Beispiel:
Nach der Ausführung dieser test unter "Test Bestanden", es gibt die option zum anzeigen der Ausgabe, die das Ausgabe-Fenster.
InformationsquelleAutor der Antwort Mike