2011-03-05 11 views
29

Quiero probar la unidad de un componente de usuario que utiliza eventos personalizados. Al hacer esto sin usar el marco de prueba de la unidad VS, debug.assert tiene éxito, al hacer lo mismo con el marco de prueba de la unidad VS, la afirmación falla esto no es lógico, así que quiero depurar mientras realizo la prueba unitaria con VS framework. Pero parece que no puedo porque el código nunca pausa en el punto de depuración que configuré.¿Puedo depurar mientras ejecuto una prueba de unidad VS?

Entonces, ¿hay alguna manera de forzarlo a pausar en el punto de depuración en ese caso?

Actualización: me refiero a no en el Proyecto de prueba en sí, sino en el Proyecto Dirigido mientras se ejecuta el Proyecto de prueba.

Respuesta

31

La respuesta de P. Campbell no es exactamente correcta. Si comienza a depurar un proyecto (como un sitio de servicios de WCF), es imposible iniciar cualquier prueba de unidad, modo de depuración o no. Las opciones para hacerlo simplemente están atenuadas en Visual Studio 2012.

Esto significa que simplemente no puede depurar el código fuera de proceso de una prueba unitaria. Solo puede depurar el código que la prueba unitaria llamó directamente en proceso.

Este es un problema importante en VS2012 que necesitan solucionar ahora.

+0

Desearía poder votar su respuesta veinte veces más – Eric

+1

La actualización 3 de Visual Studio 2013 todavía tiene este error. –

+1

Visual Studio 2013 actualización 4 - mismo problema – AlphaOmega

57

, con el proyecto Visual Studio Test, puede establecer puntos de interrupción y recorrer su código.

Asegúrese de ejecutar sus pruebas con el menú Depurar - Pruebas -> Depurar -> Pruebas en el contexto actual. Para cualquier clase de prueba o método de prueba, utilice el atajo de teclado Ctrl-RCtrl-T.

Cuando el cursor está en un método (ya sea un método de prueba o el código cubierto por la prueba), se romperá cualquier punto de interrupción en ese método o cualquier punto de interrupción en la ruta de ejecución del código. Si el cursor está en la clase o entre los métodos de prueba, ejecutará todas las pruebas de la clase. Los puntos de ruptura serán golpeados aquí como arriba.

+0

Me olvidé de decir no en el Proyecto de prueba sino en el alquitrán Geted Project – user310291

+0

@user: sí, cualquier punto de interrupción se verá afectado, ya sea en el método de prueba, o en el código que se está probando en sentido descendente. –

+0

solo para agregar a la observación de @user, si depura las pruebas de la unidad, podrá detener y depurar cualquier código, las pruebas o el código probado AS MÁS que tiene la fuente de código probada o la información del depurador, por lo que no ser capaz de saltar a un dll de referencia sin archivo de símbolos –

3

En VS2015, seleccione:

Ensayos> Depuración> Todas las pruebas

o se puede destacar una prueba específica en el editor y seleccione

Ensayos> Depurar-> Pruebas seleccionadas

Cuestiones relacionadas