Compartir a través de


Cómo: Depurar mientras se ejecuta una prueba en una solución ASP.NET

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 otro proceso de la prueba habitual, la selección de la opción Depurar las pruebas unitarias en el menú de prueba no depura 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.

Para llevar a cabo una depuración mientras se ejecuta una prueba de ASP.NET en IIS

  1. 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.

  2. 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 tiene un archivo Web.config, vaya al paso 4.Si no es así, añada uno ahora: Abra el menú contextual del proyecto de sitio web en su solución, a continuación, elija Agregar nuevo elemento.

    Se abrirá el cuadro de diálogo Agregar nuevo elemento.

  3. En el cuadro de diálogo Agregar nuevo elemento seleccione Archivo de configuración de web y luego seleccione 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.

  4. En el archivo Web.config, cambie la línea en la que puede leerse <compilation debug="false"/> a <compilation debug="true"/>.

  5. (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.

  6. Asocie el depurador al proceso de IIS.Para ello, seleccione Depurar y luego elija Asociar al proceso.

    Aparece el cuadro de diálogo Asociar al proceso.

  7. 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.

  8. En Procesos disponibles, seleccione el nombre del proceso y luego elija Asociar.

    Si el proceso al que hay que adjuntar no se está ejecutando, elija Cancelar y luego inicie el proceso.Para ello, en el Explorador de soluciones, abra el menú contextual del proyecto de sitio web y elija Ver en el explorador.Seguidamente, elija Depurar y luego seleccione Asociar al proceso una vez más, el proceso ha comenzado a ejecutarse y se muestra bajo Procesos disponibles.Elija el nombre del proceso y luego elija Asociar.

  9. Inicie la prueba en cuestión.

    Para ello, seleccione la prueba que desea depurar en el Explorador de pruebas unitarias y luego, del menu Prueba, elija Depurar pruebas unitarias y después Pruebas seleccionadas.

    [!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

  1. 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.

  2. 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 tiene un archivo Web.config, vaya al paso 4.Si no es así, añada uno ahora: Abra el menú contextual del proyecto de sitio web en su solución, a continuación, elija Agregar nuevo elemento.

    Se abrirá el cuadro de diálogo Agregar nuevo elemento.

  3. En el cuadro de diálogo Agregar nuevo elemento elija Archivo de configuración de web y luego seleccione 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.

  4. En el archivo Web.config, cambie la línea en la que puede leerse <compilation debug="false"/> a <compilation debug="true"/>.

  5. 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 Unit Tests and C++.

  6. 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.

  7. Inicie la prueba en cuestión.

    Para ello, seleccione la prueba que desea depurar en el Explorador de pruebas unitarias y luego, del menu Prueba, elija Depurar pruebas unitarias y después Pruebas seleccionadas.

  8. 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.

  9. Seleccione Depurar, elija la instancia de Visual Studio que ha cargado su solución y luego elija .

    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

Otros recursos

Cómo: Habilitar la depuración de aplicaciones de ASP.NET