2011-01-28 32 views
7

¿Hay alguna manera de romper el depurador cuando la aserción es falsa y ejecutar la aplicación utilizando el depurador de Visual Studio? Antes, cuando depuraba la aplicación de Windows, obtenía una excepción y el depurador se rompía, pero ahora en Smart Device se muestra una ventana de error de aserción con el seguimiento de la pila, pero también me gustaría ver los valores de las variables, etc.Romper el depurador en la aserción fallida

Respuesta

11

Estúpido, la solución fue simple. Cuando aparece la ventana, presione pausa en el depurador :)

+2

Me pregunto si hay alguna manera de hacer esto automáticamente, sin embargo. – Superbest

+1

@Superbest - Hay. Ver mi respuesta –

+0

Al depurar una prueba unitaria utilizando Visual Studio, la falla Debug.Assert no aparece en una ventana, es como si el marco de prueba eliminó esta característica. (Estoy usando VS 2013 Pro.) – yoyo

4

Además de la solución de Vinay, se puede iniciar el depurador para un proceso específico llamando

Debugger.Break

En su caso, usted podría hacer que cada vez que el detector reciba un mensaje de fallo.

8

No estoy seguro acerca de VS 2008, pero al menos en 2010 y más adelante, puede ir a Depurar/Excepciones (Ctrl-Alt-E). Haga clic en el botón "Añadir", elegir "Excepciones Common Language Runtime", y escriba:

Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException 

y pulsa "Aceptar". Ahora aparecerá en la lista, asegúrese de marcar la casilla de verificación en la columna "Lanzada". Ahora obtendrá un descanso en cualquier falla afirmativa.

+0

Buen consejo, pero ¿qué sucede si quiero romper System.Diagnostics.Debug.Assert al depurar una prueba unitaria? – yoyo

+0

Encontró una solución: use [TestInitialize] para agregar un System.Diagnostics.TraceListener personalizado que arroje una UnitTesting.AssertFailedException en el caso de un Debug.Assert failure. – yoyo

Cuestiones relacionadas