Compartilhar via


Solucionar problemas na execução de um teste

Se um teste falhar para ser executado, você pode investigar a falha, verificando o ambiente de teste; isso inclui a maneira que o teste estiver configurado e as configurações na configuração de execução 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 Resultados do Teste, você pode clicar clicar duas vezes resultado do teste ou clicar com o botão direito do mouse resultado do teste e, em seguida, selecionar Modo de exibição Test Results Details.Isso exibe uma página de teste [detalhes] que mostra sistema autônomo mensagens de erro e outros detalhes, dependendo do tipo de teste, sistema autônomo informações de rastreamento de pilha para testes de unidade.Um exemplo de um erro no nível de teste é um erro de tempo limite do teste, que ocorre se tempo limite do teste for atingido.

  • Erros de nível de execução.São relatados erros no nível de execução, que incluem erros de configuração de execução, através do janela Resultados do Teste.Quando ocorre um erro de nível de execução, será exibido um link no janela Resultados do Teste BAR de status.Clicar neste link exibe mais detalhes sobre o erro no execução de teste página [detalhes].Você também pode exibir a página de teste em execução [detalhes] clicando em Executar detalhes na barra de ferramentas da janela 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 tempo limite a execução for atingido.

Nem todos os problemas de causar um teste de falha na execução.Depois que você tenha escolhido obter dados de cobertura de código, a execução de testes pode gerar um aviso se seu projeto possui certas configurações de compilação.Para obter mais informações, consulte Usando a configuração de compilação AnyCPU quando Obtaining cobertura de código dados.

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.Esses erros são freqüentemente 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 obter mais informações, consulte Implantação de Teste.

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 as pastas especificadas na página de implantação na caixa de diálogo usada para editar as configurações da execução do teste.Para obter mais informações, consulte Como: Especifique uma configuração de execução de teste.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ção de execução.Se for esse o caso, certifique-se de que você examine a configuração de execução que estava ativo quando ocorreu o erro de teste.Para determinar qual configuração de execução estava ativo, examine a página Test Run Details para essa execução de teste.Para obter mais informações, consulte a seção "execução de teste Details página" noResultados de teste Reported.

Para obter mais informações sobre arquivos de configuração ativo em execução, consulte Como: Aplicar uma configuração de execução de teste.

Erros no relatório remoto dos resultados do teste

Quando você executa testes remotamente, o Resultados de Teste talvez não seja exibido.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 certo remoto Resultados de Teste depende da capacidade de Visual Studio Team System Test Edition a cópia gerada Resultados de Teste arquivos do computador de teste remoto para 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 Solução de problemas Rigs, agentes e controladores.

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.Depois que a execução do teste for concluída, a página de detalhes do teste de execução exibe uma mensagem de erro informando que cobertura do código não pode ser informada, e ele também indicará a causa.

Causas possíveis para uma falha de instrumentar um arquivo binário no local são que ele está marcado sistema autônomo 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 do arquivo binário para certificar-se de que podem ser gravado em.Para saber quais os arquivos binários a serem verificados, abra a página de cobertura do código na configuração ativa em execução; será 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 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, verifique se que nenhum Outros processo está usando o arquivo binário.Por exemplo, certifique-se de que você não tem o arquivo em em aberto em outra instância de Visual Studio.

Ao instrumentar um Assemblies de Nomes Fortes, você pode encontrar outros erros relacionados ao assinar novamente o assembly. Para obter mais informações, consulte Instrumentação e Re-Signing Assemblies.

fechar os resultados de teste para melhorar o desempenho

Para melhorar o desempenho de Visual Studio, fechar antigo resultados de teste.

Quando você executa testes, Visual Studio armazena a execução do teste e teste resultados na memória. sistema autônomo acumularem mais execuções de teste e resultados, mais memória é alocada. Você pode liberar execuções de teste da memória, clicando em fechar resultados na barra de ferramentas da janela Resultados de Teste.Essa ação libera os objetos de resultados de teste, mas não explicitamente telefonar o coletor de lixo.Isso significa que a memória estará disponível, mas não necessariamente imediatamente.

Você também pode conjunto o número máximo de execuções de teste para manter na memória.Para obter mais informações, consulte Como: Limitar o número de execuções de teste armazenados.

Usando a configuração de compilação AnyCPU quando Obtaining cobertura de código dados

Você pode obter dados de cobertura de código somente quando você testar o código em módulos (assemblies) de 32 bit.Para garantir essa condição conjunto criação de uma determinada propriedade:

Observação:

Isso Aviso não se aplica a projetos em C++ porque AnyCPU não é uma opção de plataforma para projetos C++.

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

Warning VSP2013 : Instrumenting this image requires it to run as a 32-bit process.  The CLR header flags have been updated to reflect this.

Esse aviso significa que o assembly tiver sido recompilado com x86 propriedade aplicada a finalidade de obter dados de cobertura de código durante este teste é executado.Para evitar esse aviso, compilar qualquer assembly para o qual você deseja que dados da cobertura de código com x86, a configuração.

Observação:

Se seu aplicativo deve executar nos computadores de 32 bit e 64 bit, lembre-se de recompilá-lo usando a configuração AnyCPU após conclusão do teste .

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

Você pode encontrar uma situação em que o mecanismo de execução de teste abre e bloqueia um assembly em seu projeto de teste.Quando isso acontece, não é possível, por exemplo, salvar as alterações ao conjunto de módulos (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 + c++ / CLI.Código de TestProjectA define uma classe de atributos 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 pode 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 + c++ / CLI.Código de TestProject2 define uma classe de atributos e que o atributo decora pelo menos um dos métodos de teste em TestProject2.Agora, quando você executa testes de unidade no TestProject1, o mecanismo de execução de teste abre TestProject2.DLL e pode 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. expandir Ferramentas de teste e clicar Execução de teste.

  3. Em Desempenho, desmarcar a caixa de seleção para Manter em funcionamento do mecanismo de execução teste entre execuções de teste.

Após concluir essas etapas, se o problema persistir, faça o seguinte:

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

Detalhes por tipo de teste

Determinados erros ocorrem com freqüência ou principalmente enquanto você estiver executando sistema autônomo tipos de teste específico, conforme descrito nesta seção.

  • Testes manual.Os testes manuais não podem ser executado remotamente.Quando você tenta iniciar uma execução de teste que inclui um teste manual, Test Edition tenta remover o teste manual do tempo de execução de teste. Quando isso ocorrer, você será alertado desse fato e será fornecida a opção de cancelar a execução do teste ou permitido que ele continue sem o teste manual.Para obter mais informações, consulte Caixas de diálogo de teste edição.

  • Testes ordenados.Erros são 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 depois implanta todos os arquivos de teste para todos os testes contidos, juntamente com todos os arquivos necessários.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 testes genéricos: Na página de implantação da configuração do tempo de execução 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 Ferramentas de teste do Team System não é possível encontrar os arquivos nos locais especificados por você.

    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 na configuração de execução, o erro será a nível superficial na execução.

Consulte também

Tarefas

Como: conjunto limites de horário para executar testes

Conceitos

Caixas de diálogo de teste edição

Resultados de teste Reported

Instrumentação e Re-Signing Assemblies

Testes de unidade e C++

Outros recursos

Implantação de Teste

Configurando a Execução de Teste