Testes unitários não descobertos no Visual Studio 2017

Tenho tido dificuldades com o VS 2017 desde que o instalei. Agora parece que os Testes de Unidade só serão executados a partir da linha de comando "dotnet test."

Meu projeto é .NET Core 1.1.1. Eu tenho o SDK e a atualização do framework para 1.1.1 instalado.

Eu tentei a amostra na MSDN (https://msdn.microsoft.com/en-us/library/ms182532.aspx) que também falha exatamente da mesma forma.

Todos os pacotes NuGet para os testes e o projeto principal são atuais. E tanto o projeto de teste quanto o projeto principal são construídos sem erros. E os testes são executados com sucesso a partir da linha de comando.

Alguém já fez testes unitários na VS 2017, se sim, como?

Obrigado, John


Actualização - Ampliar

Aqui está um exemplo de um simples projeto de teste que não está funcionando em GitHub. Este é um exemplo com o xUnit, mas eu tentei o NUnit e o estúdio visual construído em testes de MS. Não importa que testes ou mudanças eu faça, eu não posso conseguir que o VS test runner encontre qualquer teste.

O que eu've Tentei

  • Apagando arquivos de teste VS DEL %TEMP%\VisualStudioTestExplorerExtensions
  • Reiniciando VS
  • Fechamento/abertura de teste explorador
  • para xUnit instalado `Microsoft.DotNet.InternalAbstractions' (ver SO post)
  • para NUnit garantir adaptador instalado e a mesma versão (3) do pacote NUnit
  • 'test -> test settings -> default processor architecture' is set to x86

**A pergunta* Qualquer pessoa pode fornecer um exemplo funcional de uma solução .Net Core 1.1.0 no VS2017 (.csproj project files) onde o explorador de testes VS encontra com sucesso os testes unitários OU** mostrar-me o problema no exemplo dado.

Don't ler artigos desatualizados em MSDN. .NET Core materiais relevantes estão em docs.microsoft.com

https://docs.microsoft.com/en-us/dotnet/articles/core/testing/

Em geral, você precisa de um aplicativo .NET Core console para conter os casos de teste da unidade.

Comentários (14)

No meu caso, foi o projecto UWP presente na solução que causou o problema.

Quando eu descarreguei o projecto UWP, foram descobertos testes. Quando o carreguei de volta, o teste desapareceu novamente.

Tente descarregar todos os projectos e mantenha apenas o projecto de teste. Dez soluções de reconstrução e de teste aparecem no Test Runner. Carregue os projetos um a um e reconstrua a solução a cada vez para descobrir qual projeto está causando o problema.

amostra repo

Relatório de bug VS

Comentários (1)

O Problema

O problema é que o Visual Studio está ficando ' confuso' sobre as versões do núcleo dotnet na máquina. Quando eu fui ao painel de controle -> desinstalar programas eu tinha 8 SDK's e Runtimes diferentes instalados. Isto estava de alguma forma fazendo com que o VS tivesse silenciosamente um erro ao tentar encontrar testes.

Validar a emissão

Você pode validar o problema indo para a linha de comando e obtendo a versão do dotnet sua versão em $ dotnet --versão'. Se você vir alguma coisa, exceto a última versão que você instalou, então sua máquina tem algum descasamento e não está usando a versão correta. Exemplo...Se você tem o núcleo dotnet1.0.1instalado mas quando você recebe a versão no prompt de comando e ele diz1.0.0` isso é um problema.

A Solução

Apague todas as coisas antigas. Eu comecei apenas com o que eu achava que precisava remover (as versões mais antigas do dotnet rc), mas mesmo assim ele deu a versão errada ao testar o problema. Eventualmente, eu admiti fazer uma limpeza completa. I...

  • Desinstalei todas as aplicações de estúdio visual (na minha máquina VS2015 e VS2017)
  • Desinstalou todas as versões do núcleo dotnet (mesmo as mais recentes)

Depois que minha máquina estava completamente vazia de todos os VS e donet eu instalei somente VS2017 (ele vem embalado com o mais recente dotnet). Eu criei um projeto de teste xUnit e o test explorer encontrou o teste imediatamente **SOLVED***

Isto pode parecer um exagero, mas passei duas semanas a tentar resolver isto de outras formas. Se você tiver o problema apenas faça isso, mesmo que possa levar horas para desinstalar/reinstalar itens, isso provavelmente economizará seu tempo.

Referências

  • Veja @epestic blog post onde ele dá mais detalhes sobre como corrigir o problema.
Comentários (0)