2009-08-05 8 views
10

In NUnit bin ich es gewohnt, Trace-Anweisungen in den Test zu schreiben und sie in der Trace-Registerkarte der NUnit-GUI anzuzeigen.Trace in Visual Studio Testing (Migrieren von NUnit)

Bei einem neuen Projekt, ich bin auf die integrierte Unit Testing in Visual Studio Professional Addition, die ich glaube, ist eine Schnittstelle zu mstest.exe.

Testcode:

<TestMethod()> 
Public Sub TestPagesInheritFromBasePage() 
    Dim webUI As Assembly = Assembly.GetAssembly(GetType(WebUI.BasePage)) 
    Dim badPages As New List(Of String) 
    For Each t As Type In webUI.GetTypes() 
     Debug.Write(t.Name + ", ") 
     Trace.Write(t.Name + ", ") 
     If t.BaseType Is GetType(System.Web.UI.Page) Then badPages.Add(t.Name) 
    Next 
    Debug.Flush() 
    Trace.Flush() 
    If badPages.Count > 0 Then 
     Assert.Fail("{0}: do not inheriting from BasePage", String.Join(", ", badPages.ToArray())) 
    End If 
End Sub 

ich einen Fehler bekommen, so dass ich weiß, dass die Debug.Write und Trace.Write Linien ausgeführt werden.

Ich habe die MSDN-Dokumentation lesen Sie diese Tests auf das Schreiben, und ich kann die Trace-Ausgabe wird sichtbar, wenn in der Befehlszeile ausgeführt wird, über:

mstest.exe /testcontainer:mydll.dll /detail:debugtrace 

Ich kann aber nicht die Trace-Ausgabe finden, wenn Ausführen der Tests direkt im Visual Studio. Gibt es eine andere bevorzugte Methode zur Ausgabe von Informationen während eines Komponententests, oder fehlt mir eine Option, um Trace-Informationen im Visual Studio zu sehen?

Antwort: beide Antworten unter (Console.Write und Debug.Write) arbeitete, waren die Ergebnisse in Testergebnisse Detail (Testresult Bereich am unteren Rand der rechten Maustaste auf auf Testergebnisse und gehen Sie zu TestResultDetails) . Außerdem habe ich Debug- und Trace-Konstanten in Projekteigenschaften festgelegt.

Antwort

10

Normalerweise verwende ich diese Methode etwas im Ausgabefenster von Visual Studio drucken:

System.Diagnostics.Debug.WriteLine("Message"); 
+1

es wird immer noch nicht in der Ausgabe angezeigt. Ich habe versucht, sowohl den Test als auch das Debugging durch den Test durchzuführen. Ich rufe Debug.Flush() auf und lasse das Ausgabefenster so einstellen, dass die Debug-Ausgabe angezeigt wird. Irgendeine Idee, was ich hier vermisse? –

+0

hab es jetzt, danke! –

10

Try Console.WriteLine() stattdessen verwenden. Ich benutze das in meinen Unit-Tests und es funktioniert gut - es zeigt Text im Ausgabefenster des Einheitentestergebnisses an.

+0

das hat auch funktioniert, danke! –

2

Um die Ergebnisse Doppelklick auf den Test in den „Testergebnisse“ Fenster (Abgerufen aus dem Hauptmenüpunkt „Tests“ >> Fenstermenü >> Testergebnisse)

1

Alle früheren Antworten sind eigentlich richtig zu sehen, aber erfordern mehr oder weniger Mausklick.

Wenn Sie möchten, dass die Ausgabe sofort ohne zusätzlichen Klick, um zu sehen, fügen Sie einfach die Spalten Debug-Trace und/oder Ausgang (StdOut) (ob Sie verwenden Debug.Write oder Console.Write) zu den Testergebnissen durch Klicken mit der rechten Maustaste auf das Testergebnis und dann 'Add/Remove Columns'.

Verwandte Themen