Wie kann ich unter Debug.WriteLine-Anweisungen bei der Verwendung von TestDriven.Net?
Ich versuche zu verwenden TestDriven.Net nicht nur zum testen von meinem code, sondern um eine Funktion aufzurufen, die auf meinen code, dessen Zweck es ist, drucken Sie den internen Zustand des Codes, um das Debug-Fenster.
Hier ein sehr Vereinfachtes Beispiel, was ich versuche zu tun..
<TestFixture()> _
Public Class UnitTest
<Test()> _
Public Sub TestDebug()
Dim oClass1 As New Class1
Assert.AreEqual(True, oClass1.IsTrue)
Debug.WriteLine("About to call .PrintDebug()")
oClass1.PrintToDebug()
End Sub
End Class
Public Class Class1
Private _IsTrue As Boolean = True
Public ReadOnly Property IsTrue() As Boolean
Get
Return _IsTrue
End Get
End Property
Public Sub PrintToDebug()
Debug.WriteLine("Internal state of Class1: " & _IsTrue)
End Sub
End Class
Ich versuche zu testen, die Öffentliche Schnittstelle von Class1, und irgendwie die Anzeige der Ausgabe von der Class1.PrintToDebug()
Funktion.
Ist, habe ich mich durch die TestDriven.Net quickstart, die zeigt Beispiele für die Verwendung der Debug.WriteLine
in einem unit-test, aber merkwürdigerweise ist das bei mir nicht funktioniert - d.h. die Ausgabe nur in meine 'Test' - Fenster:
------ Test started: Assembly: ClassLibrary1.dll ------
1 passed, 0 failed, 0 skipped, took 1.19 seconds.
Ich habe versucht, die Suche in den anderen windows (Debug und Build), das Debug-Fenster hat der "Programm-Ausgang" und "Ausnahmemeldungen" - Optionen aktiviert.
Ist, habe ich mich für Optionen oder Einstellungen und finde keine!
Vielen Dank für Ihre Hilfe!
Edit: ich bin mit VB.Net 2.0, TestDriven.Net 2.14.2190 und NUnit 2.4.8.0
InformationsquelleAutor Andrew | 2008-10-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich, dass wenn der Debug.Writeline() funktioniert nicht mit unit-tests, Konsole.WriteLine() tut.
Der Grund ist, dass beim ausführen von tests, der debugger-Prozess ist nicht aufgerufen, und zu Debuggen.WriteLine() wird ignoriert. Jedoch, wenn Sie "Test mit Debugger", denke ich (noch nicht versucht) Debug.WriteLine() arbeiten.
Habe gerade versucht die Konsole.WriteLine() und es zeigt sich in der Test-Fenster. Ich werde geben, dass ein jetzt gehen, danke nochmal :o)
Ich nehme deine Antwort als die änderung der Debug.WriteLine () - Anweisungen hat den trick. Console.WriteLine gearbeitet, obwohl ich mich entschieden habe, Trace.WriteLine statt :o)
InformationsquelleAutor Jon Limjap
Trace.WriteLine()
erscheint die Antwort :o)Hier ist die Ausgabe für das Beispiel aus meiner Frage, mit
Trace
stattDebug
:Eine Sache, die ich gefunden habe, wenn.. Ausführung angehalten wird, bei der ersten fehlschlagenden unit-test-assertion, was bedeutet, dass
Trace
- Anweisungen werden nicht ausgeführt, wenn einAssert()
oben ausfällt.InformationsquelleAutor Andrew
Versuchen mit Hilfe von Trace.WriteLine(...) statt. Der Aufruf zu Debuggen.WriteLine (...), wird nur gemacht, wenn DEBUG definiert ist. Standardmäßig werden neue Visual Studio-Projekte nicht mehr definieren DEBUG", aber Sie definieren TRACE.
Sollte ich wirklich ändern Sie die quickstart-Beispiel-Trace statt.
Grüße,
Jamie.
-1 funktioniert nicht mit der Spur (ist aber konfigurierbar über die Optionen)
und es druckt nur, nachdem der test beendet!
InformationsquelleAutor jcansdale
Möchten Sie vielleicht wissen, 2.16 (die aktuelle beta-version) enthält:
So scheint es, dass es in der nächsten version.
InformationsquelleAutor Marc Gravell
IIRC, dieser Ausgang ist nur im output-Fenster beim ausführen einer individuellen Prüfung. Versuchen Sie mit der rechten Maustaste in die test-Methode ausgeführt, die test...?
Interessant - cheers
InformationsquelleAutor Marc Gravell
"Tests ausführen..." nimmt sich, was Einstellung, die Sie derzeit haben, bauen Sie Ihre Lösung/Projekt.
Müssen Sie sicherstellen, dass die aktuelle build-Einstellungen für Ihre Lösung/Projekt "Debug" und nicht auf "Release" (sonst Debuggen.Write* () - Aufrufe sind bedingt vom compiler entfernt werden).
InformationsquelleAutor Christian.K
STRG + ALT + I zeigt Ihnen das Direktfenster
InformationsquelleAutor Sergio Fabián