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
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.
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.
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.
No arquivo Web.config, altere a linha que lê <compilation debug="false"/> como <compilation debug="true"/>.
(Opcional) Defina pontos de interrupção no teste de unidade ASP.NET e no código de produção para seu site.
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.
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.
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.
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
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.
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.
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.
No arquivo Web.config, altere a linha que lê <compilation debug="false"/> como <compilation debug="true"/>.
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++.
Defina pontos de interrupção no teste de unidade ASP.NET e no código de produção para seu site.
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.
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.
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