Compartilhar via


Solução de problemas de cobertura de código

A ferramenta de análise de tinta de código em Visual Studio coleta dados para o nativo e assemblies gerenciados (arquivos .dll ou .exe).Em o entanto, em alguns casos, a janela de resultados de tinta de código exibe um erro “semelhante aos resultados vazios gerados: ….” Há várias razões possíveis pelas quais isso pode acontecer.Este tópico destina-se a ajudar a resolver esses problemas.

Você deve ver o que

Se você escolher um comando de Analisar a tinta de código no menu de teste, e se a compilação e os testes executados com êxito, então você deve ver uma lista de resultados na janela de tinta de código.Talvez você precise expanda os itens para ver o detalhe.

Resultados de cobertura de código com cores

Para mais informações, consulte Usando a cobertura de código para determinar como muito código está sendo testado.

Não possíveis motivos para ver os resultados não

JJ159523.collapse_all(pt-br,VS.110).gifNenhum teste foi executado

  • Análise
    Verifique sua janela de saída.Em a lista suspensa de Mostrar saída de , escolha Testes.Ver se houver qualquer erro ou aviso conectado.

  • Explicação
    A análise de tinta de código é feita quando os testes executa.Inclui somente os assemblies que são carregados na memória quando a execução de teste.Se nenhum dos testes são executados em não há nada para que a tinta de código relata.

  • Resolução
    Em o teste Explorer, escolha Executar todas para verificar que testa executem com êxito.Corrigir quaisquer falhas antes de usar Analisar a tinta de código.

JJ159523.collapse_all(pt-br,VS.110).gifOs arquivos de símbolo (.pdb) são não disponível

  • Análise
    Abra a pasta de destino compilar (normalmente bin \ debug), e verificar que para cada assembly, há um arquivo de .pdb no mesmo diretório que o arquivo .dll ou .exe.

  • Explicação
    O mecanismo de tinta de código requer que cada assembly tem seu arquivo associado de .pdb acessível durante o ensaio.Se não houver nenhum arquivo de .pdb para um assembly específico, não será analisado.

    O arquivo de .pdb deve ser gerado da mesma compilação que os arquivos .dll ou .exe.

  • Resolução
    Certifique-se de que as configurações de compilação geram o arquivo de .pdb.Se os arquivos de .pdb não são atualizados quando o projeto é compilado, então abra as propriedades do projeto, selecione a página de Compilar , escolha Avançado e inspecione Informações de depuração.

    Se os arquivos de .pdb e .dll ou .exe estão em locais diferentes, copie o arquivo de .pdb no mesmo diretório.Também é possível configurar o mecanismo de tinta de código para procurar por arquivos de .pdb em outro local.Para mais informações, consulte Personalizando análise de cobertura de código.

JJ159523.collapse_all(pt-br,VS.110).gifUsando um binário instrumentado ou otimizado

  • Análise
    Determine se o binário se submeteu a otimização de alguma forma eficiente como a otimização didático de perfil, ou foi instrumentado por uma ferramenta para analisar como vsinstr.exe ou vsperfmon.exe.

  • Explicação
    Se um assembly já foi instrumentado ou otimizado por outra ferramenta para, o assembly é omitido de teste de tinta de código.

    A análise de tinta de código não pode ser executada em esses assemblies.

  • Resolução
    Desconecte a otimização e use uma nova compilação.

JJ159523.collapse_all(pt-br,VS.110).gifO código não gerenciado (.NET) ou código nativo (C++)

  • Análise
    Verifique se você está executando qualquer teste em código gerenciado ou C++.

  • Explicação
    A análise de tinta de código em Visual Studio está disponível apenas em código gerenciado (C++) e nativo.Se você estiver trabalhando com ferramentas de terceiros, alguns ou qualquer código pode ser executado em uma plataforma diferente.

  • Resolução
    Nenhum disponíveis.

JJ159523.collapse_all(pt-br,VS.110).gifo assembly foi instalado por NGen

  • Análise
    Verifique se o assembly não foi carregado do native image.

  • Explicação
    Por razões de desempenho, os conjuntos de imagem nativa não são analisados.Para mais informações, consulte NGen (Native Image Generator).

  • Resolução
    Use uma versão MSIL do assembly.Não processamento com NGen.

JJ159523.collapse_all(pt-br,VS.110).gifArquivo personalizado .runsettings com a sintaxe incorreta

  • Análise
    Se você estiver usando um arquivo personalizado .runsettings, pode conter um erro de sintaxe.

    Isso resulta em nenhuma tinta de código executado de todo.Ou a janela de tinta de código não abre no final do ensaio, ou antigos mostra os resultados.

  • Explicação
    Você pode executar seus testes de unidade com um arquivo personalizado .runsettings para configurar opções de tinta de código.As opções permitem que você inclua ou exclua arquivos.Para mais informações, consulte Personalizando análise de cobertura de código.

  • Resolução
    Há dois tipos possíveis de inicialização:

  • Erro XML

    Abra o arquivo de .runsettings no editor XML do Visual Studio.Procure no erro.

  • Erro de expressões regulares

    Cada cadeia de caracteres no arquivo é uma expressão regular.Examinar cada um para erros, e procure-o em particular:

    • Parênteses incompatível (...) ou parênteses de escape (\…\).Se você deseja corresponder um parêntese na cadeia de caracteres de pesquisa, você deve escapá-la.Por exemplo, para corresponder um uso da função: .*MyFunction\(double\)

    • Asterisco ou sinal de adição no início de uma expressão.Para combinar qualquer cadeia de caracteres, use um ponto seguido por um asterisco: .*

JJ159523.collapse_all(pt-br,VS.110).gifArquivo personalizado .runsettings incorretas com exclusões

  • Análise
    Se você estiver usando um arquivo personalizado .runsettings, certifique-se que inclui o seu assembly.

  • Explicação
    Você pode executar seus testes de unidade com um arquivo personalizado .runsettings para configurar opções de tinta de código.As opções permitem que você inclua ou exclua arquivos.Para mais informações, consulte Personalizando análise de cobertura de código.

  • Resolução
    Remova todos os nós de Include do arquivo de .runsettings, e então remover todos os nós de Exclude .Se esse corrigir o problema, coloque-as novamente nas fases.

    Certifique-se de que o nó de DataCollectors especifica a tinta de código.Compare-o com o exemplo em Personalizando análise de cobertura de código.

Alguns códigos é mostrado como tratado nem sempre

JJ159523.collapse_all(pt-br,VS.110).gifO código de inicialização em DLL nativa é executado antes de instrumentação

  • Análise
    Em código nativo estaticamente associado, a parte da função DllMain de inicialização e o código que chama às vezes são mostrados como não abordados, mesmo que o código seja executado.

  • Explicação
    A ferramenta de tinta de código funciona inserindo a instrumentação em um assembly imediatamente antes do aplicativo inicia a execução.Em qualquer assembly carregado antes de esta vez, o código de inicialização em DllMain executem assim que o assembly é carregado, e antes do aplicativo é executado.O código não aparecerá para ser tratado.

    Normalmente, isso se aplica aos conjuntos estaticamente carregados.

  • Resolução
    Nenhum.

Consulte também

Outros recursos

Usando a cobertura de código para determinar como muito código está sendo testado