2009-08-05 8 views
10

En NUnit, estoy acostumbrado a escribir declaraciones de Trace en la prueba y hacer que aparezcan en la pestaña de seguimiento de la GUI de NUnit.Rastreo en Visual Studio Testing (Migración desde NUnit)

En un nuevo proyecto, voy a pasar a las pruebas unitarias integradas en Visual Studio Professional Addition, que creo que es una interfaz para mstest.exe.

Código de prueba:

<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 

Me estoy poniendo un fracaso, por lo que conocer las líneas Debug.Write y Trace.Write están ejecutando.

He leído a través de la documentación de MSDN en la escritura de estas pruebas, y puedo ver el resultado de seguimiento si la ejecución de la línea de comandos, a través de:

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

Sin embargo, no puedo encontrar la salida de rastreo cuando ejecutando las pruebas directamente en el estudio visual. ¿Hay otro método preferido para generar información durante una prueba unitaria, o me está faltando una opción para ver la información de rastreo en Visual Studio?

Respuesta: Tanto de las respuestas a continuación (Console.Write y Debug.Write) trabajaron, los resultados fueron en Resultados de los exámenes Detalle (TestResult panel en la parte inferior, haga clic derecho en los resultados de pruebas e ir a TestResultDetails) . Además, establezco las constantes Debug y Trace en las propiedades del proyecto.

Respuesta

10

Por lo general utiliza este método para imprimir algo en la ventana de resultados de Visual Studio:

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

todavía no aparece en la salida. Intenté ejecutar la prueba y la depuración durante la prueba. Estoy llamando a Debug.Flush(), y tengo la ventana de salida establecida para mostrar la salida de depuración. ¿Alguna idea de lo que me falta aquí? –

+0

lo tengo ahora, gracias! –

10

Intente utilizar Console.WriteLine() lugar. Lo uso en las pruebas de mi unidad y funciona bien: muestra texto en la ventana de resultados del resultado de la prueba de la unidad.

+0

esto funcionó también, gracias! –

2

Para ver los resultados, haga doble clic en la prueba de la "prueba" de la ventana Resultados (se accede desde el punto del menú principal "Pruebas" >> ventana del menú >> Resultados de la prueba)

1

Todas las respuestas anteriores son correctas, pero en realidad requieren más o menos clic con el mouse.

Si desea ver la salida inmediatamente sin hacer un clic adicional, sólo tiene que añadir las columnas depuración del rastro y/o de salida (stdout) (si está utilizando o Debug.Write Console.Write) al Test Results haciendo clic con el botón derecho en el resultado de la prueba y luego "Agregar/Eliminar columnas".

Cuestiones relacionadas