Solução de problemas no teste edição

Quando você está testando seu código, certas condições podem gerar erros ou avisos ou até mesmo fazer com que o teste falhar.Este tópico descreve algumas dessas condições e etapas que podem ser executadas para resolvê-los.

Solucionar problemas na execução de um teste

Condições que impedem que testes sejam executados normalmente podem ser rastreadas para uma falha ao implantar o arquivo de teste ou outros arquivos necessários para o teste a ser executado.

  • Testes remoto.Para testes remotos, problemas de comunicação com o computador remoto também podem ser com defeito.Esses e outros erros no nível de teste e no nível de execução são descritos em Solucionar problemas na execução de um teste.

  • Testes de unidade ASP.NET.Se o teste de unidade ASP.NET estiver em execução no processo do IIS, você pode optar por ter o processo do ASP.NET são executado sistema autônomo um usuário não-padrão, isto é, com uma identidade de processo diferente, para fins de segurança.Nesse caso, a execução de teste pode falhar.Para obter mais informações, consulte Visão geral dos testes de unidade ASP.NET.

  • Implantando arquivos junto com seus testes.Erros de implantação com freqüência são exibidos na execução de teste Details Page e não no teste de página de detalhes de resultados do indivíduo testar que falhou.Portanto, talvez não seja óbvio por que um teste individual falhou.Para obter mais informações, consulte a seção "Solução de problemas implementação de teste" noVisão geral do teste implantação.

  • Solucionando problemas de testes da Web.Diversos erros podem ocorrer quando você executa testes da Web.Eles podem ser causados por um atributo de vinculação de dados ausentes, problemas com configurações de segurança ou uma tentativa de acessar um site fora do firewall.Para obter mais informações, consulte Solucionando problemas de testes da Web.

  • Testes de carga de solução de problemas.Diversos erros podem ocorrer quando você executa testes de carga.Eles podem ser causados por problemas com o banco de dados de teste de carga, o conjunto de contadores no seu teste de carga, um simuladores de carga configurado incorretamente ou um dos testes contidos no teste de carga.Para obter mais informações, consulte Solucionando problemas de testes de carga.

  • Solução de problemas testes de unidade orientado a dados.Você pode encontrar a conexão, autenticação, implantação ou outros problemas quando você executa testes de unidade orientado a dados.Usar as informações de Solucionando problemas de testes de unidade baseados em dados Para resolver esses problemas.

Assinando novamente assemblies com nome forte

Quando você executa testes de unidade, você está testando código em um binário.Você pode coletar informações sobre cobertura de código quando esses testes são executados por Instrumentação ou binário; consulte Como: Obter dados de cobertura de código. O processo de instrumentação adiciona código que gera informações de cobertura de código em binário.

Se o binário que você está testando um assembly de nome forte, a modificação de código causada por instrumentação invalida a assinatura.So Visual Studio tenta automaticamente assinar novamente o assembly imediatamente após a etapa de instrumentação. Para obter mais informações sobre assemblies de nome forte, consulte Assemblies de Nomes Fortes.

Várias condições podem causar esta nova assinatura falhar.Para obter informações sobre como solucionar essas condições, consulte Instrumentação e Re-Signing Assemblies.

Dados de cobertura de código e VSPerfMon.exe

Se você estiver executando VSPerfMon.exe enquanto estiver executando testes para o qual você está coletando dados de cobertura de código simultaneamente, os eventos a seguir ocorrerá:

  • Se você estiver executando VSPerfMon com a opção TRACE ou SAMPLE, a execução de teste em execução simultaneamente falhará e um erro é relatado na página Test Run Details.

  • Se você estiver executando VSPerfMon.exe com a opção COVERAGE, o processo VSPerfMon.exe é interrompido.

Em ambos os casos, a solução é desistir de simultaneamente execução VSPerfMon.exe e executar testes na qual você está coletando dados de cobertura de código.Para obter mais informações sobre a ferramenta VSPerfMon.exe, consulte VSPerfMon.

Quando isso pode acontecer?

Os casos mais comuns ao VSPerfMon será executado são:

  • Você iniciou uma sessão de criação de perfil, possivelmente em uma instância de Visual Studio diferente da instância na qual você está executando testes.

  • Você está coletando cobertura de código ou dados de criação de perfil por executando VSPerfMon.exe diretamente ou, sistema autônomo é mais comum, usando o wrapper VSPerfCmd.exe.

Dados de cobertura de código não aparecem corretamente

Se você solicitou que os dados da cobertura de código ser reunidas para seus testes mas ele não for exibido, ou exibe diferente do que o esperado, poderá aplicar uma das situações descritas aqui:

  • Não há dados de cobertura de código aparecem. Durante a execução de teste, determinados binários, sistema autônomo DLLs COM, são carregados em seu local original e não a partir do diretório de implementação de teste.Esses binários devem ser instrumentados no local; caso contrário, apesar de execução do teste for bem-sucedida e sem qualquer aviso de nível de execução é gerado, dados de cobertura de código não são coletados.Para obter mais informações, consulte Escolha a pasta de instrumentação.

  • Realce de cobertura de código não aparece.Quando você executa testes, coletar cobertura de código dados e exibir os resultados do teste, Visual Studio indica o código que foi testado no execução de teste realçando o código no seu arquivo de código-fonte. Você pode escolher as cores que indicam qual código foi coberto, não coberto e parcialmente abordado.Se alguns ou todos esse realce não for exibido, certifique-se de que as cores escolhidas diferem da cor do plano de fundo do seu arquivo de código-fonte.Para obter mais informações sobre como escolher cores de realce, consulte a seção "Alterando a exibição de código cobertura dados" noComo: Obter dados de cobertura de código.

  • Dados de cobertura de código não mesclagem corretamente. Você pode mesclagem os resultados que incluem um ou mais de execução de teste ASP.NET, mas a janela cobertura de código Results exibe dados ASP.NET em resultados mesclados em nós diferentes, em vez de em um nó único, mesclado.Para obter mais informações, consulte Trabalhando com dados de cobertura de código mesclados.

  • Nem todos os dados da cobertura de código mesclado é exibida. Depois de ter dados de cobertura de código mesclada, você poderá exportá-las para o disco sistema autônomo um arquivo XML.Se você reimportar este arquivo e, em seguida, mesclá-la com dados adicionais, nem todas as estatísticas serão exibidas.Para obter mais informações, consulte Trabalhando com dados de cobertura de código mesclados.

  • Não importa dados de cobertura de código.Visual Studio deve ser capaz de localizar certos arquivos no disco para importar dados de cobertura de código. Para obter mais informações, consulte Trabalhando com dados de cobertura de código mesclados.

  • Binários instrumentados são substituídos.Você está tentando coletar dados de cobertura de código de um programa que você está executando durante um teste manual.Se você usar CTRL + F5 para iniciar esse programa, a ação CTRL+F5 faz com que o binário do programa para ser reconstruído.Isso sobrescreve o binário instrumentado, o que significa que nenhum dado de cobertura de código pode ser obtidos.

Para obter informações Geral sobre a coleta de dados de cobertura de código, consulte Como: Obter dados de cobertura de código.

Problemas de desempenho ao adicionar métodos de teste

Quando você adiciona um novo método de teste, processamento em segundo plano é executado para adicionar esse método de teste na Janela Modo de Teste e editor lista de testes.Portanto, você pode vê-lo imediatamente.Se você tiver muitos métodos de teste em uma única classe de teste ou no projeto inteiro, talvez ocorra um problema de desempenho é causado por esse processamento automático quando você adiciona um novo método de teste a essa classe de teste.

Se você estiver enfrentando esse problema de desempenho, há três possíveis soluções:

  • Você pode dividir sua classe de teste em classes parcial e divida seus métodos de teste entre as classes parcial.Isso reduz o número de métodos em uma única classe de teste e melhora o desempenho quando você adiciona um método de teste.

  • Você pode criar um novo projeto de teste, mover algumas das classes de teste para este novo projeto de teste e, em seguida, remova-os do projeto de teste original.Isso reduz o número de métodos de teste em um assembly e melhora o desempenho.

  • Você tem a opção para desativar o processamento em segundo plano que adiciona métodos de teste na Janela Modo de Teste e Test Editor de lista.Isso melhorará o desempenho quando um método de teste é adicionado.No entanto, quando essa opção estiver conjunto, o método de teste não será visto na Janela Modo de Teste ou Editor do teste de lista até que você compila a classe que contém o método de teste e clicar Refresh na Janela Modo de Teste ou Editor de Lista de Testes.

    Observação:

    Quando Esta opção é conjunto, o Novo métodos de teste serão descobertos em time de compilar .Isso aumenta o time total para compilar a solução.

Para desabilitar a detecção automático de métodos de teste

  1. No menu Tools, clique em Options.

    A caixa de diálogo Options é exibida.

  2. Expanda Test Tools no painel esquerdo e clique Test Project.

  3. Para desabilitar a detecção automático de métodos de teste, selecionar desabilitar descoberta de plano de fundo de métodos de teste.

    Observação:

    Quando essa opção é definida, qualquer teste método que você Adicionar a qualquer classe de teste não serão vistos na janela teste View ou o Editor de Lista de Testes até que você compilar a classe que contém o método de teste .

Consulte também

Tarefas

Como: mesclagem dados de cobertura de código

Solucionando problemas de testes da Web

Solucionando problemas de testes de carga

Conceitos

Visão geral do teste implantação

Trabalhando com dados de cobertura de código mesclados

Solucionando problemas de testes de unidade baseados em dados

Visão geral dos testes de unidade ASP.NET