Compartilhar via


Perguntas frequentes sobre o Gerenciador de Testes do Visual Studio

Detecção de testes dinâmica

O Gerenciador de Testes não está detectando meus testes definidos dinamicamente. (Por exemplo, teorias, adaptadores personalizados, características personalizadas, #ifdefs etc.) Como posso descobrir esses testes?

Crie seu projeto para executar a descoberta baseada em assembly.

A Detecção de testes em tempo real é a detecção de testes baseada na origem. Ele não consegue detectar testes que usam teorias, adaptadores personalizados, características personalizadas, instruções #ifdef e outros, porque esses itens são definidos em tempo de execução. Um build é necessário para que esses testes sejam localizados com precisão. No Visual Studio 2017 versão 15.6 e posteriores, a descoberta baseada em assembly (o detector tradicional) é executada somente depois dos builds. Essa configuração significa que a detecção de testes em tempo real localiza o máximo de testes possível enquanto você está editando e a descoberta baseada em assembly permite que os testes definidos dinamicamente apareçam após um build. A detecção de testes em tempo real melhora a capacidade de resposta, mas ainda permite que você obtenha resultados completos e precisos após um build.

Sinal de "+" (adição) do Gerenciador de Testes

O que significa o '+' (sinal de mais) que aparece na linha superior do Gerenciador de Testes?

O símbolo '+' (sinal de adição) indica que mais testes poderão ser descobertos após um build quando a descoberta baseada em assembly for executada. Esse símbolo será exibido quando forem detectados testes definidos dinamicamente no projeto.

Plus symbol summary line

Detecção de testes em tempo real

Agora os testes são exibidos no Gerenciador de Testes enquanto digito, sem a necessidade de compilar o projeto. O que mudou?

Esse recurso é chamado de Detecção de testes em tempo real. Ele usa um analisador Roslyn para encontrar testes e popular o Gerenciador de Testes em tempo real, sem exigir que você compile o projeto. Para obter mais informações sobre o comportamento da detecção de testes para testes definidos dinamicamente, como teorias ou características personalizadas, confira Detecção de testes dinâmica.

Compatibilidade da detecção de testes em tempo real

Quais linguagens e estruturas de teste podem usar a detecção de testes em tempo real?

A Detecção de testes em tempo real só funciona em linguagens gerenciadas (C# e Visual Basic), pois é compilada com o compilador Roslyn. Por enquanto, a detecção de testes em tempo real só funciona para as estruturas xUnit, NUnit e MSTest.

Logs do Gerenciador de Testes

Como faço para ativar logs no Gerenciador de Testes?

Navegue para Ferramentas>Opções>Teste e localize a seção Log.

Detecção de testes da UWP

Por que meus testes em projetos UWP não são detectados enquanto eu não implanto o aplicativo?

Os testes UWP têm como destino um runtime diferente quando o aplicativo é implantado. Isso significa que para encontrar testes com precisão em projetos UWP, além de compilar seu projeto, você também precisa implantá-lo.

Classificação do Gerenciador de Testes

Como funciona a classificação de resultados de teste no modo de exibição de hierarquia?

O modo de exibição de hierarquia classifica os testes em ordem alfabética e não por resultado. As outras configurações de agrupamento normalmente classificam os resultados de teste por resultado e, em seguida, em ordem alfabética. Você ainda pode habilitar a classificação por resultado clicando com o botão direito do mouse no cabeçalho da coluna no Gerenciador de Testes, habilitando a coluna Estado e clicando no cabeçalho da coluna Estado para aplicar a classificação nessa coluna. Você pode fornecer comentários sobre o design neste assunto do GitHub.

Modo de exibição da hierarquia do Gerenciador de Testes

Na exibição de hierarquia, há ícones para testes aprovados, com falha, ignorados e não executados, ao lado dos agrupamentos do nó pai. O que esses ícones significam?

Os ícones ao lado dos agrupamentos Projeto, Namespace e Classe mostram o estado dos testes nesse agrupamento. Confira a tabela a seguir.

Test Explorer Hierarchy Icons

Pesquisar por caminho do arquivo

Não existe mais um filtro de "caminho do arquivo" na caixa de pesquisa do Gerenciador de Testes.

O filtro do caminho de arquivo na caixa de pesquisa do Gerenciador de Testes foi removida do Visual Studio 2017 versão 15.7. Essa funcionalidade tinha pouco uso e o Gerenciador de Testes pode recuperar métodos de teste com mais rapidez excluindo essa funcionalidade. Se essa alteração interromper seu fluxo de desenvolvimento, informe-nos enviando comentários na Comunidade de Desenvolvedores.

Remover interfaces não documentadas

Algumas APIs relacionadas a teste não estão mais presentes no Visual Studio 2019. O que mudou?

No Visual Studio 2019, serão removidas algumas APIs de janela de teste que foram marcadas como públicas anteriormente, mas nunca foram documentadas oficialmente. Elas foram marcadas como "preteridas" no Visual Studio 2017 para fornecer um aviso antecipado aos mantenedores de extensão. Para o nosso conhecimento, muito poucas extensões haviam encontrado essas APIs e criado uma dependência delas. Elas incluem IGroupByProvider, IGroupByProvider<T>, KeyComparer, ISearchFilter, ISearchFilterToken, ISearchToken e SearchFilterTokenType. Se essa alteração afetar sua extensão, fale conosco enviando um bug na Comunidade de Desenvolvedores.

Referência ao NuGet do adaptador de teste

No Visual Studio 2017, versão 15.8, meus testes são detectados, mas não são executados.

Todos os projetos de teste devem incluir a referência ao NuGet do adaptador de teste do .NET no arquivo .csproj. Caso contrário, a saída desse teste será exibida no projeto se a detecção por uma extensão do adaptador de teste for iniciada após um build, ou se o usuário tentar executar os testes selecionados:

O projeto de teste{} não faz referência a nenhum adaptador do NuGet do .NET. A execução ou a detecção de testes pode não funcionar para esse projeto. Recomendamos fazer referencia aos adaptadores de teste do NuGet em cada projeto de teste do .NET na solução.

Em vez de usar extensões do adaptador de teste, os projetos são solicitados a usar os pacotes do adaptador de teste do NuGet. Esse requisito melhora bastante o desempenho e causa menos problemas com a integração contínua. Leia mais sobre a substituição da extensão do adaptador de teste do .NET nas notas de versão.

O TestContainer do UWP não foi encontrado

Meus testes do UWP não estão mais sendo executados no Visual Studio 2017 versão 15.7 e posterior.

Projetos de teste do UWP recentes especificam uma propriedade de build da plataforma de teste que permite um melhor desempenho para identificar aplicativos de teste. Se um projeto de teste da UWP for inicializado antes do Visual Studio versão 15.7, o seguinte erro poderá aparecer em Saída>Testes:

System.AggregateException: ocorreu um ou mais erros. ---> System.InvalidOperationException: O TestContainer a seguir não foi encontrado {} em Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()

Para corrigir esse erro:

  • Atualize a propriedade de build do projeto de teste usando o seguinte código:
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
  • Atualize a versão do SDK da TestPlatform usando o seguinte código:
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />

Usar versões prévias dos recursos

No Visual Studio 2019, você pode optar por versões prévias dos recursos em Ferramentas > Opções > Ambiente > Versões Prévias dos Recursos.