Cómo: Depurar mientras se ejecuta una prueba en una solución ASP.NET
Actualización: noviembre 2007
Es posible depurar tanto pruebas unitarias como pruebas Web que se están utilizando para probar proyectos Web de ASP.NET. También es posible depurar código de producción de ASP.NET mientras se está ejecutando una prueba.
Sin embargo, cuando se está probando código de ASP.NET, el código de prueba no se ejecuta de la forma habitual, en el proceso VSTestHost. En su lugar, se ejecuta en el proceso de IIS o, si el sitio Web en cuestión está basado en archivos, en un proceso del servidor de desarrollo de ASP.NET. Debido a que la prueba se ejecuta en un proceso diferente del proceso de prueba habitual, elegir la opción Depurar selección en la ventana Vista de pruebas o la opción Depurar pruebas comprobadas en el Editor de lista de pruebas no hace posible que se realice ninguna depuración mientras se ejecuta la prueba.
De igual forma, el código de producción de ASP.NET no se puede recorrer a menos que se habilite la depuración y que se agregue el depurador al servidor de desarrollo de ASP.NET o el proceso IIS.
En cada uno de los siguientes procedimientos, se crea un proyecto de sitio Web de ASP.NET utilizando el cuadro de diálogo Nuevo sitio Web. En este cuadro de diálogo, hay que utilizar el cuadro de lista Ubicación con el fin de elegir una ubicación para el sitio Web en cuestión. Esta opción determina el proceso al que después asociará el depurador y los pasos que tiene que seguir para llevar a cabo una depuración mientras ejecuta una prueba en una solución ASP.NET. Las dos opciones que hay son IIS y Servidor de desarrollo de ASP.NET.
Depurar durante una ejecución en IIS
Depurar durante la ejecución en el servidor de desarrollo de ASP.NET
Depurar durante una ejecución en IIS
En el siguiente procedimiento, asociará el depurador a un proceso. El nombre del proceso depende del sistema operativo que utilice, ya que el sistema operativo determina la versión de IIS que está instalada. En la siguiente tabla se muestra qué proceso se utiliza en cada sistema operativo. Para obtener un sistema operativo en la primera columna, utilice el nombre del proceso especificado en la tercera columna en la sección Procesos disponibles del cuadro de diálogo Asociar al proceso.
Sistema operativo |
Proceso de host |
Nombre del proceso de ASP.NET |
Windows Server 2003 |
IIS 6.0 |
w3wp.exe |
Windows XP |
IIS 5,1 |
aspnet_wp.exe |
Windows 2000 |
IIS 5,0 |
aspnet_wp.exe |
Para llevar a cabo una depuración mientras se ejecuta una prueba de ASP.NET en IIS
Cree un proyecto en un sitio Web de ASP.NET que desee probar y una prueba unitaria de ASP.NET para probarlo.
Cuando cree este proyecto de sitio Web, en el cuadro de diálogo Nuevo sitio Web, seleccione HTTP o FTP como Ubicación. Esto garantiza que el proceso del host sea IIS.
Para obtener más información, vea Cómo: Crear una prueba unitaria ASP.NET.
Habilite la depuración en el proyecto Web de ASP.NET. Para ello, edite el archivo de configuración Web del proyecto. Si el proyecto ya dispone de un archivo Web.config, vaya al paso 4. En caso contrario, agregue uno ahora: haga clic con el botón secundario en el proyecto de sitio Web en la solución y, a continuación, haga clic en Agregar nuevo elemento.
Se abrirá el cuadro de diálogo Agregar nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento, haga clic en Archivo de configuración Web y, a continuación, en Agregar.
Se agrega un archivo Web.config al proyecto de sitio Web correspondiente. Para obtener más información acerca de cómo utilizar los archivos Web.config, vea Cómo: Habilitar la depuración de aplicaciones de ASP.NET.
En el archivo Web.config, cambie la línea en la que puede leerse <compilation debug="false"/> a <compilation debug="true"/>.
(Opcional) Establezca puntos de interrupción en la prueba unitaria de ASP.NET y en el código de producción para el sitio Web en cuestión.
Asocie el depurador al proceso de IIS. Para ello, haga clic en Depurar y, a continuación, haga clic en Asociar al proceso.
Aparece el cuadro de diálogo Asociar al proceso.
En Procesos disponibles, busque el nombre del proceso al que desea asociar el depurador.
Si no aparece el proceso que necesita, puede mostrar más procesos que se estén ejecutando. Para ello, seleccione Mostrar los procesos de todos los usuarios y Mostrar los procesos de todas las sesiones.
En Procesos disponibles, haga clic en el nombre del proceso y, a continuación, haga clic en Asociar.
Si el proceso al que tiene que asociarse no está en ejecución, haga clic en Cancelar y, a continuación, inicie el proceso. Para ello, en el Explorador de soluciones, haga clic con el botón secundario en el proyecto de sitio Web en cuestión y, a continuación, haga clic en Ver en el explorador. Seguidamente, haga clic en Depurar y, a continuación, haga clic una vez más en Asociar al proceso; el proceso ha empezado a ejecutarse y aparece en Procesos disponibles. Haga clic en el nombre de proceso y, a continuación, haga clic en Asociar.
Inicie la prueba en cuestión.
Para ello, en la ventana Vista de pruebas, haga clic con el botón secundario del mouse en la prueba que desee depurar y seleccione Depurar selección.
Nota: Cuando ejecute pruebas, puede elegir Ejecutar selección en lugar de Depurar selección. La diferencia es que si elige Depurar selección, el depurador se desasociará automáticamente cuando finalice la prueba, pero si elige Ejecutar selección, el depurador permanecerá asociado. Puede que la opción Ejecutar selección le resulte más útil, sobre todo si tiene pensado volver a ejecutar la prueba varias veces durante la depuración y no desea tener que volver a asociar el proceso cada vez. Si ha elegido Ejecutar selección, para desasociar el proceso cuando finalice la depuración, elija Detener depuración en el menú Depurar o presione Mayús+F5.
Depurar durante la ejecución en el servidor de desarrollo de ASP.NET
Para llevar a cabo una depuración mientras se ejecuta una prueba en un servidor de desarrollo de ASP.NET
Cree un proyecto en un sitio Web de ASP.NET que desee probar y una prueba unitaria de ASP.NET para probarlo.
Cuando cree este proyecto de sitio Web, en el cuadro de diálogo Nuevo sitio Web, seleccione Sistema de archivos como Ubicación. Esto garantiza que el proceso del host sea Servidor de desarrollo de ASP.NET.
Para obtener más información, vea Cómo: Crear una prueba unitaria ASP.NET.
Habilite la depuración en el proyecto Web de ASP.NET. Para ello, edite el archivo de configuración Web del proyecto. Si el proyecto ya dispone de un archivo Web.config, vaya al paso 4. En caso contrario, agregue uno ahora: haga clic con el botón secundario en el proyecto de sitio Web en la solución y, a continuación, haga clic en Agregar nuevo elemento.
Se abrirá el cuadro de diálogo Agregar nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento, haga clic en Archivo de configuración Web y, a continuación, en Agregar.
Se agrega un archivo Web.config al proyecto de sitio Web correspondiente. Para obtener más información acerca de cómo utilizar los archivos Web.config, vea Cómo: Habilitar la depuración de aplicaciones de ASP.NET.
En el archivo Web.config, cambie la línea en la que puede leerse <compilation debug="false"/> a <compilation debug="true"/>.
Agregue la instrucción System.Diagnostics.Debugger.Break() al principio de la prueba unitaria de ASP.NET.
Nota: Sólo se alcanzarán los puntos de interrupción del código si están situados a continuación de esta instrucción System.Diagnostics.Debugger.Break().
Nota: En C++, esta instrucción es System::Diagnostics::Debugger::Break(). Para obtener información acerca de cómo utilizar las pruebas unitarias en Visual C++, vea Pruebas unitarias y C++.
Establezca puntos de interrupción en la prueba unitaria de ASP.NET y en el código de producción para el sitio Web en cuestión.
Inicie la prueba en cuestión.
Para ello, en la ventana Vista de pruebas, haga clic con el botón secundario en la prueba que desee ejecutar y seleccione Ejecutar selección.
En cuanto comience a ejecutarse la prueba, aparecerá un cuadro de diálogo. Este cuadro de diálogo indica que el programa ha encontrado un punto de interrupción.
Haga clic en Depurar, elija la instancia de Visual Studio donde está cargada la solución y, a continuación, haga clic en Sí.
Visual Studio se asociará al proceso con la ejecución pausada en la instrucción System.Diagnostics.Debugger.Break(). Puede elegir Continuar en el menú Depurar o puede presionar F5 para permitir que la ejecución continúe hasta el siguiente punto de interrupción.
Nota: Asegúrese de quitar la instrucción System.Diagnostics.Debugger.Break() cuando finalice la depuración. De lo contrario, cada vez que ejecute la prueba, aparecerá el cuadro de diálogo de punto de interrupción.
Vea también
Tareas
Cómo: Depurar mientras se ejecuta una prueba
Cómo: Crear una prueba unitaria ASP.NET
Conceptos
Información general sobre las pruebas unitarias de ASP.NET