2012-08-30 9 views
14

En algunas de las soluciones tenemos un proyecto web ASP.NET/WCF y un proyecto de prueba. Algunas de las pruebas se ejecutan en el servidor web de desarrollo ASP.NET usando http://localhost:port/.... En VS2010 mientras se depuraba el proyecto web ASP.NET/WCF, el corredor de prueba podía ejecutar las pruebas y si existían puntos de corte en el proyecto web, el depurador interrumpiría la ejecución. Esto parece haber sido desactivado/eliminado en VS2012.¿Cómo ejecutar una prueba al mismo tiempo que se depura un proyecto web?

Cuando se depura el proyecto web ASP.NET/WCF (se inicia presionando F5 o mediante el proceso de adjuntar), los submenús PRUEBA-> Ejecutar y PRUEBA-> Depurar se desactivan. En VS2010, solo los submenús Test-> Debug se desactivaron mientras Test-> Run sub-menus todavía estaban habilitados. Utilizamos esta forma para depurar fácilmente los servicios dentro del proyecto web. ¿Alguna forma de recuperar ese comportamiento o solucionarlo?

Debugging While Running on ASP.NET Development Server no parece ser aplicable a VS2012 o al menos no puedo hacer que funcione.

+0

@Robert, pensé que las etiquetas no deberían incluirse en las preguntas. Además, la pregunta es sobre "cómo ejecutar una prueba al mismo tiempo cuando se está depurando el proyecto web" en lugar de sobre el funcionamiento de los puntos de interrupción. En VS2012, las pruebas no se pueden ejecutar en absoluto. –

+0

Es por eso que estoy haciendo la pregunta. Si el depurador se está ejecutando y el proyecto web se está depurando, no podemos ejecutar la prueba. Todos los menús en PRUEBA-> Ejecutar y PRUEBA-> Depurar están deshabilitados. Este no fue el caso en VS2010. Hemos probado varias máquinas y proyectos múltiples (convertidos a VS2012). –

+0

Al crear un título, pienso en cómo podría verse en Google. Dado que la etiqueta más popular (ASP.NET en este caso) se agrega al comienzo del título en Google, agregar etiquetas al comienzo de un título no tiene ningún sentido. Sin embargo, está bien que las etiquetas aparezcan "naturalmente" en el medio o al final de un título si lo hace un mejor título para Google. –

Respuesta

2

Terminé escribiendo un rápido addon. Resulta que, como VS2012, el corredor de pruebas VS2012 también puede ejecutar las pruebas cuando se depura el proyecto web. Es solo que las opciones del menú están deshabilitadas.

+0

Esa es una gran idea. Lamentablemente, cuando probé su complemento no se carga con el número de error 80004005. Esto es con VS 2012 Ultimate, actualización 2. – JohnnyHK

+0

Gracias por el esfuerzo. Lo tengo para ejecutar en la Comunidad VS 2013 siguiendo estas instrucciones (https://stackoverflow.com/questions/21662223/cant-integrate-visual-studio-2013-with-an-add-in). Para mí no hay mensajes de error, pero VS pide detener la depuración cuando se usa la opción "Ejecutar todas las pruebas en contexto", y no ejecuta las pruebas. – AronVanAmmers

6

Si usted tiene una solución con aplicaciones WCF y pruebas llamándolos, puede depurar las aplicaciones que utilizan las pruebas llamando depuración Todas las pruebas o pruebas de depuración seleccionada sin previa Iniciar depuración (F5).

Configure su solución a Proyectos de inicio múltiples con Ninguno conjunto en todas las acciones y configurar sus aplicaciones WCF a la acción de inicio No abra una página. Espere la solicitud. Con esta configuración, el servidor web de desarrollo se inicia si selecciona Depurar todas las pruebas o Pruebas seleccionadas de depuración.

+0

Esto también funciona con un sitio web ASP.NET MVC. –

11

En VS2013 la situación es la misma: las opciones para ejecutar/depurar pruebas se atenúan mientras se ejecuta/depura el proyecto. Esto es una pena especialmente para proyectos como API web donde las pruebas para llamar a la API a través de HTTP (en lugar de crear una instancia de la clase Controller y eludir cualquier tráfico de red) son muy útiles ya que están más cerca de lo que los usuarios finales de la API Va a experimentar.

Como solución temporal, puede abrir la misma solución en una instancia separada de VS o crear una solución separada con los mismos proyectos, específicamente para las pruebas. Depure en la primera instancia de VS, ejecute pruebas en la segunda.

0

Aquí hay una solución para depurar una prueba de una sola unidad junto con un servidor web. Se basa en Debugging Multiple Processes (excluye MSVS Express):

  1. de inicio del servidor web, tenga en cuenta su ID de proceso.
  2. Coloque un punto de interrupción en la primera línea en la prueba
  3. Inicie la depuración de la prueba unitaria, espere a que se detenga en el punto de interrupción.
  4. Depuración -> conectar con el proceso, introduzca web proceso de servidor ID

Un camino alternativo para proyectos completos (incluyendo la prueba supongo):

Haga clic derecho sobre la Solución -> Propiedades -> Múltiples proyectos de inicio. Defina y luego solo F5 (Depurar).

Cuestiones relacionadas