Solucionar problemas na execução de um teste

Se não conseguir executar um teste, você pode investigar a falha, verificando o ambiente de teste; Isso inclui a maneira como o teste estiver configurado e as configurações nas configurações do teste ativo. Em alguns casos, como aqueles relacionados a implantação, falhas são independentes do tipo de teste. Em outros casos, o tipo de teste determina como e o que investigar. Para obter dicas de investigação por tipo de teste, consulte Details by Test Type.

Erros que envolvem testes são relatados para você em um dos dois níveis:

  • Erros de nível de teste. Usando a janela de resultados de teste, você pode clicar duas vezes o resultado de teste ou o resultado do teste com o botão direito e selecione View Test Results Details. Isso exibe uma página de teste [detalhes] que mostra as mensagens de erro e outros detalhes, dependendo do tipo de teste, como informações de rastreamento de pilha para testes de unidade. Um exemplo de um erro de nível de teste é um erro de tempo limite de teste, o que ocorre se o limite do teste é alcançado.

  • Erros de nível de execução. Erros no nível de execução, que incluem erros de configurações de teste, são relatados através da janela Test Results. Quando ocorre um erro de nível de execução, um link será exibido na barra de status da janela de resultados de teste. Clicar neste link exibe mais detalhes sobre o erro na página de teste em execução [detalhes]. Você também pode exibir a página de teste em execução [detalhes] clicando em Run Details na barra de ferramentas janela de resultados de teste. Um exemplo de um erro de nível de execução é um erro de tempo limite de execução, o que ocorre se a execução tempo limite é atingido.

Nem todos os problemas causam um teste de falha na execução. Depois que você optou por obter dados de cobertura de código, a execução de testes pode gerar um aviso se o seu projeto possui certas configurações de compilação. Para obter mais informações, consulte usando a compilação Qualquer_cpu configuração quando obtendo dados de cobertura de código.

Erros de implantação

Determinados erros podem ser encontrados em qualquer teste que pode ser executado automaticamente, que significa qualquer tipo de teste diferente do manual. Freqüentemente, esses erros estão relacionados à implantação de testes. Quando um teste for implantado, o arquivo que o contém é copiado para outra pasta, tanto para um local no computador local ou em um computador remoto.

Para testes unidade, por exemplo, o arquivo.dll que foi criado no projeto de teste é o arquivo que deve ser implantado. Imediatamente se este arquivo binário não pode ser implantado, qualquer teste de unidade que ele contém são marcadas como uma falha na janela de resultados do teste quando você executa-los.

Para corrigir este erro, verifique se os arquivos estão disponíveis em seu computador local e que houve uma compilação sem erros na última vez que você reconstruído seus binários de teste.

Somente arquivos binários não podem ser implantados. Você pode especificar que um arquivo específico, como um arquivo de dados, e é exigido por um teste e portanto deve ser implantado com o teste. No momento da implantação se este arquivo não puder ser localizado caso tenha sido movido ou excluído, o teste não pode ser executado corretamente e ocorrerá um erro. Consulte também Details by Test Type para informações sobre este erro com relação aos testes genéricos.

Para investigar este erro, primeiro observe os arquivos e pastas especificadas na página de implantação da caixa de diálogo usada para editar configurações de teste. Para obter mais informações, consulte Criar um teste automatizado de configurações para executar testes a partir de Visual Studio. Então verifique esses arquivos e pastas no disco para certificar-se de que eles estão presentes e que seus nomes sejam idênticos.

A solução pode ter vários arquivos de configurações de teste. Se for esse o caso, certifique-se de que você examine as configurações de teste que estava ativa quando ocorreu o erro de teste. Para determinar quais configurações de teste estava ativa, examine a página Test Run Details do teste em execução.

Para obter mais informações sobre arquivos de configuração do teste ativo, consulte Como: Aplicar configurações de teste do Microsoft Visual Studio.

Erros no relatório remoto dos resultados do teste

Quando você executa testes remotamente, os resultados do teste não podem exibir. Provavelmente esse erro está relacionada com a natureza remota da execução do teste.

Como os resultados do teste de execução local, e os resultados da execução remota são relatados para você localmente. O relatório de certos resultados do teste remoto depende da capacidade de Visual Studio Ultimate para copiar os arquivos de resultados de teste gerados a partir do computador de teste remoto para o seu computador local.

Se você encontrar erros que ocorrem com os resultados do teste remoto, inicie determinando se conexão de rede entre o computador remoto e o computador no qual você está executando Visual Studio foi interrompida.

Para obter mais informações, consulte Configurando as máquinas de teste para executar testes ou coletar dados.

Erros de instrumentação

Para ativar o relatório de cobertura do código, os arquivos binários que serão testados devem ser instrumentados e implantados antes de executar os testes de execução neles.

Uma falha em instrumento no arquivo binário faz o relatório de cobertura do código falhar. Após a execução de teste, a página Test Run Details exibe uma mensagem de erro informa que a cobertura de código não pode ser informada, e ela também informa que a causa.

Causas possíveis para uma falha em um arquivo binário no lugar de instrumento são que ele está marcado como somente leitura ou está sendo usado por outro processo. Para corrigir o erro de um arquivo binário de somente leitura, primeiro examine os atributos de arquivo binário para certificar-se de que ele pode ser gravado. Para saber quais os arquivos binários para verificar, abra a página de cobertura de código das configurações do teste ativo; é aqui que você especificou os arquivos de instrumentação. Para obter mais informações, consulte Como: Obter dados de cobertura de código.

Outra causa da falha de cobertura de código quando usando instrumentação in-loco pode ocorrer quando você estiver usando um ou mais testes de unidade, juntamente com um teste manual. Durante o teste manual, o testador executa o código de produção que está sendo testado. Se o testador pressionar F5 ou CTRL + F5 para iniciar ou depurar o código, o arquivo executável do projeto é reconstruído, o que remove a instrumentação.

Além disso, certifique-se de que nenhum outro processo está usando o arquivo binário. Por exemplo, certifique-se de que você não tiver o arquivo aberto em outra instância do Visual Studio.

Ao instrumentar Assemblies de nomes fortes, você pode encontrar outros erros relacionados com a nova assinatura de assembly. Para obter mais informações, consulte Instrumentação e renovando a assinatura de Assemblies.

Usando a configuração de compilação de Qualquer_cpu ao obter dados de cobertura de código

Você pode obter dados de cobertura de código somente quando você testar o código nos assemblies de 32 bits. Para garantir essa condição, defina uma propriedade de compilação específica:

ObservaçãoObservação

Este aviso não se aplica aos projetos do C++ porque Qualquer_cpu não é uma opção de plataforma para projetos C++.

Se você construir seu projeto com o valor da AnyCPU, testes são executados em um assembly resultante produzem dados da cobertura de código, mas a execução de teste também gera um aviso. Você pode ver o texto do aviso de advertência na página de detalhes de teste executar:

Aviso VSP2013: Instrumentar esta imagem requer que ele seja executado como um processo de 32 bits.  Os sinalizadores de cabeçalho CLR foram atualizados para refletir isso.

Esse aviso significa que o assembly foram recompilado com x86 propriedade aplicada com o objetivo de obter dados de cobertura de código durante este teste é executado. Para evitar esse aviso, compile qualquer assembly do qual você deseja que os dados de cobertura de código com a configuração de x86.

ObservaçãoObservação

Se seu aplicativo deve ser executada em computadores de 32 e 64 bits, lembre-se de recompilá-lo usando a configuração de Qualquer_cpu após conclusão do teste.

Executar testes de unidade pode bloquear um C + + / CLI Assembly de teste

Você pode encontrar uma situação na qual o mecanismo de execução de teste abre e bloqueia um assembly em seu projeto de teste. Quando isso acontece, você não pode, por exemplo, salvar alterações para o assembly. Esse problema pode ocorrer nas seguintes situações:

  • Caso 1: Você desativou a implantação de seu projeto de teste, TestProjectA. TestProjectA foi compilado no C + + / CLI. O código de TestProjectA define uma classe de atributo e que o atributo decora pelo menos um dos métodos de teste em TestProjectA. Neste ponto, quando você executa testes de unidade no TestProjectA, o mecanismo de execução de teste abre TestProjectA.DLL e deixá-lo em um estado bloqueado.

  • Caso 2: Seu projeto de teste, TestProject1, contém uma DLL que foi compilada a partir de um segundo projeto de teste TestProject2. TestProject2 foi compilado no C + + / CLI. O código de TestProject2 define uma classe de atributo e que o atributo decora pelo menos um dos métodos de teste no TestProject2. Agora, quando você executa testes de unidade no TestProject1, o mecanismo de execução de teste abre TestProject2.DLL e deixá-lo em um estado bloqueado.

Em ambos os casos, a solução pode ter duas partes. Primeiro, execute as seguintes etapas.

  1. No menu Tools, selecione Options.

    A caixa de diálogo Options abrirá.

  2. Expanda Ferramentas de teste e clique em A execução de teste.

  3. Em desempenho, desmarque a caixa de seleção para manter o mecanismo de execução de teste em execução entre execuções de teste.

Depois de concluir essas etapas, se o problema persistir, faça o seguinte:

Alterar seu código para que o teste do projeto que foi compilado no C + + / CLI não precisa ser carregado no AppDomain padrão. Uma maneira de fazer isso é mover as definições dos atributos personalizados que você usa em um assembly separado que é implementado em C#.

Detalhes por tipo de teste

Determinados erros ocorrem com freqüência ou principalmente enquanto você estiver executando determinados tipos de teste, conforme descrito nesta seção.

  • Testes ordenados. Erros encontrados com testes ordenados geralmente envolvem a implantação do arquivo. Antes do mecanismo de teste pode executar um teste ordenado, ele deve localizar e implantar todos os arquivos de teste para todos os testes contidos, além de para todos os outros arquivos. Uma falha nesta execução para qualquer um dos testes individuais causaria um erro.

  • Testes genéricos. Os erros de implantação também podem ocorrer quando você executar os testes genéricos. Você pode especificar arquivos a serem implantados de duas maneiras para os testes genéricos: Na página de implantação das configurações de teste e, na página criação do genérico próprio teste. O teste pode falhar se você esquecer de listar todos os arquivos necessários ou se os arquivos não podem ser encontrados nos locais que você especificou.

    Essas duas maneiras diferentes para implantar os arquivos podem causar erros que aparecem em diferentes níveis. Se o erro de implantação estiver relacionado a um arquivo especificado no teste genérico na página de criação, o erro será a nível superficial no teste. Se o erro de implantação estiver relacionado a um arquivo especificado nas configurações de teste, o erro será superficial no nível de execução.

Consulte também

Tarefas

Como: Definir limites de tempo para execução de testes

Conceitos

Instrumentação e renovando a assinatura de Assemblies

Revisar os resultados do teste