Perguntas frequentes sobre o Gerenciador de Testes do Visual Studio
Detecção de testes dinâmica
O Gerenciador de Testes não está descobrindo meus testes definidos dinamicamente (por exemplo, teorias, adaptadores personalizados, características personalizadas e instruções #ifdef). Como posso garantir que ele descubra 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 pode descobrir testes que usam teorias, adaptadores personalizados, características personalizadas, instruções #ifdef
e muito mais porque são definidos em runtime. Uma compilação é necessária para que esses testes sejam identificados 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 localização de testes em tempo real descobre a maior quantidade possível de testes enquanto você edita. A descoberta baseada em assemblagem permite que testes definidos dinamicamente apareçam após uma compilação.
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 símbolo de adição que aparece na linha superior do Gerenciador de Testes?
O símbolo 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 se testes definidos dinamicamente forem detectados em seu projeto.
Detecção de testes em tempo real
Os testes agora aparecem no Gerenciador de Testes enquanto digito, sem exigir que eu crie meu projeto. O que mudou?
Esse recurso é chamado de detecção de testes em tempo real. Ele usa um analisador Roslyn para localizar testes e preencher o Gerenciador de Testes em tempo real, sem exigir que você crie seu 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 anteriormente neste artigo.
Compatibilidade para descoberta de testes em tempo real
Quais linguagens e estruturas de teste podem usar a descoberta de teste em tempo real?
A detecção de testes em tempo real só funciona para as linguagens gerenciadas (C# e Visual Basic), pois é compilada usando o compilador Roslyn. Por enquanto, a descoberta de teste em tempo real funciona apenas para as estruturas xUnit, NUnit e MSTest.
Logs do Gerenciador de Testes
Como posso ativar os logs para o Test Explorer?
Vá para Ferramentas>Opções>Teste e localize a seção Log de Eventos.
Detecção de testes da UWP
Por que meus testes em projetos UWP não são descobertos até que eu implante meu aplicativo?
Os testes da UWP (Plataforma Universal do Windows) têm como destino um runtime diferente quando o aplicativo é implantado. Para localizar testes com precisão para projetos UWP, você precisa não apenas compilar seu projeto, mas também implantá-lo.
Classificação do Gerenciador de Testes
Como funciona a classificação de resultados de teste no modo de exibição de hierarquia?
A exibição de hierarquia classifica os testes em ordem alfabética, 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 Test Explorer, ativando a coluna Estado e, em seguida, selecionando o 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 de Project, Namespacee Classe mostram o estado dos testes em cada agrupamento. Consulte a tabela a seguir.
Pesquisa por caminho de arquivo
Por que não há mais um filtro de caminho de arquivo na caixa de pesquisa do Gerenciador de Testes?
O filtro de caminho de arquivo na caixa de pesquisa do Gerenciador de Testes foi removido no Visual Studio 2017 versão 15.7. Esse recurso tinha baixo uso, e o Test Explorer pode recuperar métodos de teste mais rapidamente ao excluí-lo. Se essa alteração interromper seu fluxo de desenvolvimento, informe-nos enviando comentários na Comunidade de Desenvolvedores em .
Remoção de interfaces não documentadas
Algumas APIs relacionadas ao teste não estão mais presentes no Visual Studio 2019. O que mudou?
No Visual Studio 2019, algumas APIs de janela de teste que foram previamente marcadas como públicas, mas nunca foram documentadas oficialmente, serão removidas. Eles foram marcados como preteridos no Visual Studio 2017 para dar aos mantenedores de extensão um aviso antecipado. Para nosso conhecimento, pouquíssimas extensões encontraram essas APIs e assumiram uma dependência delas. Eles incluem IGroupByProvider
, IGroupByProvider<T>
, KeyComparer
, ISearchFilter
, ISearchFilterToken
, ISearchToken
e SearchFilterTokenType
.
Se essa alteração afetar sua extensão, informe-nos registrando um bug na Comunidade de Desenvolvedores .
Referência ao NuGet do adaptador de teste
Por que meus testes não são executados no Visual Studio 2017 versão 15.8, mesmo que sejam descobertos?
Todos os projetos de teste devem incluir a referência nuGet do adaptador de teste do .NET em seu 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 você tentar executar os testes selecionados:
O projeto de teste {} não faz referência a nenhum adaptador do .NET NuGet. A descoberta ou execução de teste pode não funcionar para este projeto. É recomendável fazer referência aos adaptadores de teste do NuGet em cada projeto de teste do .NET na solução.
Em vez de usar extensões de adaptadores de teste, os projetos devem usar pacotes NuGet de adaptadores de teste. Esse requisito melhora muito o desempenho e causa menos problemas com a integração contínua. Leia mais sobre a descontinuação das extensões do adaptador de teste do .NET nas notas de versão.
UWP TestContainer não encontrado
Por que meus testes UWP não estão mais em execução no Visual Studio 2017 versão 15.7 e posterior?
Projetos de teste UWP recentes especificam uma propriedade de build 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 este erro:
Atualize a propriedade de build para seus projetos de teste usando o seguinte código:
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
Atualize a versão do SDK do TestPlatform usando o seguinte código:
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />
Recursos de prévia
Como posso usar recursos de visualização no Visual Studio 2019?
No Visual Studio 2019, você pode optar por visualizar recursos em Ferramentas>Opções>Ambiente>Versões prévias dos recursos.
Conteúdo relacionado
- Microsoft.VisualStudio.TestTools.UnitTesting
- Criar e executar testes de unidade para código existente
- Efetuar teste de unidade em seu código
- Perguntas frequentes sobre teste de unidade ao vivo