Partilhar via


Como depurar durante a execução de um teste em uma solução do ASP.NET

 

Publicado: abril de 2016

Você pode depurar os testes de unidade e os testes da Web que você está usando para testar projetos Web ASP.NET. Você também pode depurar seu código de produção ASP.NET durante a execução de um teste.

No entanto, quando você está testando o código ASP.NET, o código de teste não é executado no modo comum, no processo VSTestHost. Em vez disso, ele é executado no processo do IIS ou, se o site for baseado em arquivo, em um processo do ASP.NET Development Server. Como as execuções de teste em outro tipo de processo de teste, selecionar a opção Depurar Testes de Unidade no menu Teste não depura enquanto o teste estiver em execução.

Da mesma forma, o código de produção do ASP.NET não pode ser manipulado na menos que a depuração esteja habilitada e o depurador esteja vinculado ao ASP.NET Development Server ou o processo do IIS.

Em cada um dos procedimentos a seguir, você criará um projeto de site ASP.NET usando a caixa de diálogo Novo Site. Nesta caixa de diálogo, use a caixa de listagem Local para escolher um local para o site. Essa opção determina o processo ao qual você anexará o depurador mais tarde, e as etapas que você deve seguir para depurar durante a execução de um teste em uma solução ASP.NET. As duas opções são o IIS e o ASP.NET Development Server.

  • Depurando durante a execução no IIS

  • Depurando durante a execução no ASP.NET Development Server

Depurando durante a execução no IIS

No procedimento a seguir, você anexará o depurador a um processo. O nome do processo depende do sistema operacional você está usando, pois o sistema operacional determina a versão do IIS que está instalada.

Para depurar durante a execução de um teste do ASP.NET no IIS

  1. Crie o projeto de site ASP.NET que você deseja testar e um teste de unidade do ASP.NET para testá-lo.

    Quando você criar esse projeto de site, na caixa de diálogo Novo Site, selecione HTTP ou FTP como Local. Isso garante que o processo host seja o IIS.

  2. Habilite a depuração no projeto Web ASP.NET. Para fazer isso, edite o arquivo de configuração da Web do projeto. Se o projeto já tiver um arquivo Web.config, vá para a etapa 4. Caso contrário, adicione um agora: abra o menu de atalho do projeto de site em sua solução e escolha Adicionar Novo Item.

    A caixa de diálogo Adicionar Novo Item é exibida.

  3. Na caixa de diálogo Adicionar Novo Item, escolha Arquivo de Configuração Web e em Adicionar.

    Um arquivo Web.config é adicionado ao seu projeto de site. Para obter mais informações sobre como usar arquivos Web.config, consulte Como habilitar a depuração para aplicativos ASP.NET.

  4. No arquivo Web.config, altere a linha que lê <compilation debug="false"/> como <compilation debug="true"/>.

  5. (Opcional) Defina pontos de interrupção no teste de unidade ASP.NET e no código de produção para seu site.

  6. Anexe o depurador ao processo do IIS. Para fazer isso, escolha Depurar e Anexar ao Processo.

    A caixa de diálogo Anexar ao Processo será exibida.

  7. Em Processos Disponíveis, localize o nome do processo ao qual você deseja anexar o depurador.

    Se o processo de que você precisa não for exibido, é possível exibir mais processos que estão em execução. Para fazer isso, marque Mostrar processos de todos os usuários e Exibir os Processos em Todas as Sessões.

  8. Em Processos Disponíveis, escolha o nome do processo e depois escolha Anexar.

    Se o processo ao qual você precisa anexar não estiver em execução, escolha Cancelar e inicie o processo. Para fazer isso, no Gerenciador de Soluções, abra o menu de atalho do projeto de site e escolha Exibir no Navegador. Em seguida, escolha Depurar e Anexar ao Processo mais uma vez; a execução do processo iniciará, e o processo será exibido em Processos Disponíveis. Escolha o nome do processo e Anexar.

  9. Inicie o teste.

    Para fazer isso, selecione o teste que você deseja depurar no Gerenciador de Testes de Unidade e no menu Testar, escolha Depurar Testes de Unidade e depois Testes Selecionados.

    Dica

    Ao executar testes, você pode escolher Executar Seleção em vez de Depurar Seleção.A diferença é que, se você escolher Depurar Seleção, o depurador será desanexado automaticamente depois que o teste for concluído, mas se você escolher Executar Seleção, o depurador permanecerá anexado.Você pode achar Executar Seleção mais útil, especialmente se quiser executar novamente o teste várias vezes durante a depuração, mas sem ter que anexar novamente o processo toda vez.Se você escolheu Executar Seleção, para desanexar o processo quando terminar a depuração, escolha Parar Depuração no menu Depurar ou pressione Shift+F5.

Depurando durante a execução no ASP.NET Development Server

Para depurar durante a execução de um teste no ASP.NET Development Server

  1. Crie o projeto de site ASP.NET que você deseja testar e um teste de unidade do ASP.NET para testá-lo.

    Quando você criar esse projeto de site, na caixa de diálogo Novo Site, selecione Sistema de Arquivos como Local. Isso garante que o processo host seja o ASP.NET Development Server.

  2. Habilite a depuração no projeto Web ASP.NET. Para fazer isso, edite o arquivo de configuração da Web do projeto. Se o projeto já tiver um arquivo Web.config, vá para a etapa 4. Caso contrário, adicione um agora: abra o menu de atalho do projeto de site em sua solução e escolha Adicionar Novo Item.

    A caixa de diálogo Adicionar Novo Item é exibida.

  3. Na caixa de diálogo Adicionar Novo Item, escolha Arquivo de Configuração Web e em Adicionar.

    Um arquivo Web.config é adicionado ao seu projeto de site. Para obter mais informações sobre como usar arquivos Web.config, consulte Como habilitar a depuração para aplicativos ASP.NET.

  4. No arquivo Web.config, altere a linha que lê <compilation debug="false"/> como <compilation debug="true"/>.

  5. Adicione a instrução System.Diagnostics.Debugger.Break() ao início do teste de unidade ASP.NET.

    Dica

    Os pontos de interrupção no código serão atingidos somente se seguirem a instrução System.Diagnostics.Debugger.Break().

    Dica

    Em C++, essa instrução é System::Diagnostics::Debugger::Break().Para obter mais informações sobre como usar testes de unidade no Visual C++, consulte Unit Tests and C++.

  6. Defina pontos de interrupção no teste de unidade ASP.NET e no código de produção para seu site.

  7. Inicie o teste.

    Para fazer isso, selecione o teste que você deseja depurar no Gerenciador de Testes de Unidade e no menu Testar, escolha Depurar Testes de Unidade e depois Testes Selecionados.

  8. Assim que a execução do teste começar, uma caixa de diálogo será exibida. Essa caixa de diálogo indica que o programa encontrou um ponto de interrupção.

  9. Escolha Depurar, escolha a instância do Visual Studio que tem sua solução carregada e escolha Sim.

    O Visual Studio será anexado ao processo, com a execução pausa na instrução System.Diagnostics.Debugger.Break(). Você pode optar por Continuar no menu Depurar ou pressione F5 para permitir que a execução siga para o próximo ponto de interrupção.

    Dica

    Não se esqueça de remover a instrução System.Diagnostics.Debugger.Break() quando você terminar a depuração.Caso contrário, a caixa de diálogo de ponto de interrupção aparecerá toda vez que você executar o teste.

Consulte também

Como depurar durante a execução de um teste
Como habilitar a depuração para aplicativos ASP.NET