ATUALIZAÇÃO: Adicionando um 2019; o mecanismo de integração de descoberta / corredor é o mesmo de 2017 e 2015; portanto, as principais coisas que podem dar errado são as mesmas.
Eu li Por que o corredor xUnit não encontra meus testes, o que cobre os motivos pelos quais o xUnit nunca seria capaz de encontrar seus testes, mas meu problema é diferente - estou confiante de que não há nada sutil nos meus testes; (eles funcionaram em outros ambientes, isso parece ser apenas minha máquina) - o Visual Studio Test Runner no Visual Studio 2015 [Community Edition] simplesmente não está mostrando nenhum dos meus testes. Não estou fazendo nada remotamente emocionante; os testes têm como alvo xUnit.net v2 na área de trabalho.
Eu olhei na janela Saída e não estou vendo nada em Teste em Mostrar saída nas guias.
fonte
Respostas:
Elimine as exceções de descoberta de suas consultas; vá para a janela de saída (Ctrl-Alt-O), depois alterne a saída do show do menu suspenso (Shift-Alt-S) para testes e verifique se não há exceções de descoberta
Teste | Configurações de teste | A arquitetura padrão do processador pode ajudar se seus testes forem específicos para x86 / x64 e a descoberta estiver desencadeando exceções relacionadas à fragilidade, ou seja, AnyCpu
Como sugerido nesta resposta (faça um upvote se a técnica ajudar), executar o corredor do console da área de trabalho ( instruções ) pode ser uma boa verificação cruzada para eliminar outras possibilidades, por exemplo, arquivos de configuração desconectados: -
OBSERVAÇÃO O
xunit.runner.console
pacote está obsoleto - quando você colocar as coisas funcionando no VS, também poderádotnet test
executá-las em contextos de ICLeia a documentação - é abrangente, atualizado, inclui informações sobre solução de problemas e utiliza PRs: -
Os seguintes passos funcionaram para mim:
(Somente se você suspeitar que há uma bagunça séria na sua máquina - em geral, o caso mais comum é que a integração do visual studio simplesmente ainda não está instalada)
Faça o
DEL %TEMP%\VisualStudioTestExplorerExtensions
que é recomendado: -PS> del $env:TEMP\VisualStudioTestExplorerExtensions
Instale o pacote NuGet
xunit.runner.visualstudio
em todos os projetos de testePacote:
Você precisa terminar com o seguinte em
paket.dependencies
:nuget xunit.runner.visualstudio version_in_path: true
Observe que o
version_in_path: true
bit é importanteNuget: Vá para o Console do Gerenciador de Pacotes (Alt-T, N, O) e
Reconstrua para garantir que
xunit.runner
acabe no diretório de saídaClose Test Explorer <- esse foi o bit que faltava para mim
Abra novamente o Explorador de Testes (Alt-S, W, T)
Executar todos os testes (Ctrl R, A)
fonte
%TEMP%\VisualStudioTestExplorerExtensions
e reiniciar o VS finalmente funcionou!Eu tive que alterar as configurações de teste depois de alterar a CPU dos projetos de teste para x64. Em seguida, os testes foram detectados novamente.
fonte
Nenhuma das soluções acima funcionou para mim (dotnetcore 1.1, VS2017). Aqui está o que foi corrigido:
Microsoft.TestPlatform.TestHost
Microsoft.NET.Test.Sdk
Esses são além desses pacotes que eu instalei antes:
fonte
TestPlatform.TestHost
apenas quando a migração do VS 2017 para VS 2019.Instale o
xunit.runner.visualstudio
pacote para o projeto de testefonte
Siga estes passos:
MsTest.TestAdapter
eMsTest.TestFramework
dll's
denugget package manager
.fonte
%TEMP%\VisualStudioTestExplorerExtensions
e ainda às vezes eu tinha que executar os testes do console.Eu estive lutando com isso a tarde toda enquanto trabalhava com um projeto ASP Core e o xUnit 2.2.0. A solução para mim foi adicionar uma referência a
Microsoft.DotNet.InternalAbstractions
Eu descobri isso ao tentar executar o projeto de teste manualmente com o
dotnet test
qual falhou, mas relatou queInternalAbstractions
estava faltando. Não vi esse erro na janela de saída do teste quando a descoberta automática falhou. A única informação que vi na janela de descoberta foi um código de retorno, o que não significava nada para mim no momento, mas, em retrospectiva, provavelmente estava indicando um erro.fonte
Já aconteceu comigo algumas vezes - quando eu limpo o projeto e o construo novamente, ele tende a ficar bem.
fonte
Verifique se sua classe de teste é pública .
fonte
O motivo, no meu caso, foi que a criação do destino não era a mesma entre o depurador do projeto e o executor de teste. Para unificar esses elementos:
Depois que eles forem idênticos, recrie sua solução e os métodos de teste aparecerão para você.
fonte
Depois de passar 2 dias ... nenhuma das opções acima funcionou para mim. A única "solução" foi: Vá para as propriedades do projeto -> Guia Compilar. Em seguida, clique no botão Avançado no canto inferior direito do painel. Altere "Informações de depuração:" para "cheio" e clique em OK.
Aqui estão as capturas de tela:
fonte
Estou usando o xUnit 2.2.0.
Meu problema foi que minha solução não conseguiu encontrar determinadas DLLs e
app.config
estava tentando resolvê-las. O erro não estava aparecendo na janela de saída do teste no Visual Studio.Consegui identificar o erro quando instalei
xunit.runner.console
e tentei executar os testes através da linha de comando.Como executar testes de xunit na CLI .
fonte
Posso fornecer uma solução para um caso de ponta que encontrei alguns dias atrás. Não será a solução que se encaixa em todos os cenários descritos acima, no entanto, para o caso de ponta que eu o corrigi.
Eu tive o mesmo problema com o VS 2017 mais recente (versão 15.5.7) e o XUnit 2.3.1. O pacote xunit.runner.visualstudio foi instalado, no entanto, os testes não foram exibidos no explorador de testes interno do VisualStudio.
Eu estava trabalhando em um projeto legado que tinha como alvo o .NET framework 4.5. No entanto, começando com a versão 2.2. O XUnit não suporta estruturas .NET inferiores à 4.5.2 (consulte as Notas da versão - XUnit 2.2: 19 de fevereiro de 2017
Alterar a estrutura de destino do projeto de teste para uma versão> = 4.5.2 funcionou para mim. Você não precisa alterar a versão do projeto que está testando; trata-se apenas do próprio projeto de teste.
fonte
Eu tive o mesmo problema com o Visual Studio 2019. Acabei de instalar os seguintes pacotes NuGet e o problema foi resolvido.
1) xUnit
2) xunit.runner.visualstudio
3) Microsoft.TestPlatform.TestHost
4) Microsoft.NET.Test.Sdk
fonte
Isso também pode ocorrer porque a caixa de seleção de compilação não está sendo marcada para o projeto de plataforma atual na configuração de compilação. Clique em Build | Gerenciador de configuração e verifique se os projetos de teste estão marcados na coluna de construção da plataforma que você está usando (por exemplo, 'x86').
Essa foi definitivamente a solução que funcionou para mim.
fonte
Verifique se você não escreveu seus testes de unidade em uma biblioteca de classes do .NET Standard 2.0. O visualstudio runner não suporta a execução de testes nas bibliotecas de classes netstandard2.0 no momento da redação deste documento.
Verifique aqui a matriz de compatibilidade do Test Runner:
https://xunit.github.io/#runners
fonte
Ocorreu um problema semelhante com o VS não descobrindo métodos de teste. No meu caso, eu tinha a palavra-chave estática com o método, que eu removi e funcionou.
fonte
me avise obrigado
fonte
No meu caso, eu tinha 2 projetos de teste diferentes na solução. Os testes do Projeto 1 foram encontrados, mas os testes do Projeto 2 não. Descobri que, primeiro, ao descarregar o projeto de teste 1, depois fechar o VS> limpar meus arquivos temporários> abrir novamente a solução> reconstruir, permiti que o VS descobrisse meus testes do projeto 2.
Estou assumindo que algo deve estar em conflito entre os dois projetos de teste e essa foi a maneira mais rápida de me colocar em funcionamento em alguns minutos. As torções podem ser resolvidas mais tarde :).
fonte
Eu sofria desse problema há muito tempo.
Eu tinha cerca de 100 projetos, uma versão diferente foi implantada em um servidor diferente.
A atualização do xunit de 2.2.0 para 2.3.1 não foi uma solução porque a compilação estava com falha no 2.3.1.
Acabei de atualizar o xunit.runner.visualstudio para a 2.3.1 e tudo começou a funcionar bem. Eu usei esse comando no console do gerenciador de pacotes para atualizar meu pacote xunit.runner.visualstudio
fonte
O culpado mais comum para mim foi o Visual Studio tentando executar os testes usando uma arquitetura diferente da biblioteca que está testando. Infelizmente, existem vários lugares onde parece que isso pode dar errado.
No VS 2017, tente criar um arquivo de configurações de execução, por exemplo,
Default.runsettings
no seu projeto de teste. Se sua biblioteca principal for x64, o conteúdo deve ser:Em seguida, escolha este arquivo em Teste -> Configurações de teste -> Selecione Arquivo de configurações de teste.
Em seguida, em Teste -> Configurações de teste, Arquitetura padrão do processador, escolha a arquitetura correta novamente.
Certifique-se de limpar e criar a solução inteira. Pode ser necessário fechar e reabrir a janela do Gerenciador de Testes. Procure por erros adicionais na janela Saída -> Teste, para obter mais dicas sobre tipos de arquitetura incorretos.
As entradas adicionais das Configurações de teste da FYI podem ser encontradas aqui .
fonte
Há um outro motivo que pode fazer com que o Test Explorer não mostre nenhum teste, e tem a ver com o novo
.pdb
formato de arquivo portátil introduzido no Visual Studio 2017 / for .NET Core que pode interromper algumas ferramentas do VS. ( Segundo plano: consulte o relatório de erros "Mono.Cecil causa OutOfMemoryException com novos PDBs .csproj" .)Seus testes não foram encontrados devido ao novo formato portátil
.pdb
(símbolos de depuração)?Se você vir uma saída semelhante à seguinte (possivelmente repetida uma vez para cada um dos seus testes), terá o problema descrito nesta resposta:
Se sim, faça isso para resolver o problema:
none
,pdb-only
oufull
, mas NÃOportable
. É essa última configuração que faz com que os testes não sejam encontrados..pdb
arquivos antes de reconstruir. Agora seus testes devem estar de volta.fonte
Aconteceu comigo quando fiz minhas primeiras tentativas de caminhada com o IntelliTest no VS 2017.
Às vezes, quando o projeto de teste é criado automaticamente pelo IntelliTest, a referência de montagem para
Microsoft.ExtendedReflection
( ... \ Arquivos de Programas (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ Extensões \ Microsoft \ Pex \ Microsoft.ExtendedReflection. DLL ) está ausente. Quando adicionados, os testes gerados aparecerão no test explorer após a recompilação.fonte
Isenção de responsabilidade: não se trata de xunit com o visual studio 2015, mas do Visual Studio 2017 com um aplicativo de teste de unidade UWP (MSTest). Eu cheguei a este tópico pesquisando a mesma coisa, então talvez alguém faça o mesmo :)
A solução para mim foi atualizar os pacotes de nuget para MSTest.TestAdapter e MSTest.TestFramework. Parece que quando você cria um aplicativo de teste de unidade para UWP, não recebe automaticamente as versões mais recentes.
fonte
Meu problema foi resolvido instalando o nuget xunit.runner.visualstudio
fonte
No meu caso, tenho vários projetos de teste na mesma solução e apenas um dos projetos não exibia o "Test Explorer"
Eu fui ao "Manage Nuget Package for Solution" clicando com o botão direito do mouse na solução.
Percebi que, na guia "Consolidar", havia alguns pacotes de nuget "Teste" que estavam fora de sincronia entre os projetos. Eu cliquei em "Instalar" e meus testes ausentes apareceram.
fonte
Eu tentei a maioria das sugestões acima e nada funcionou. No meu caso, estou em uma equipe e os testes estavam aparecendo para outros desenvolvedores para a mesma solução. Então, tentei excluir minha pasta .vs, mas também não tive sorte.
Acabei excluindo totalmente minha pasta local e clonando novamente o repositório. Isso resolveu para mim.
fonte
Aqui está a solução que funcionou para nós. Não é o melhor, mas talvez alguém possa se beneficiar.
Fundo:
No Build, veríamos esta mensagem:
Solução (temporária):
Agora os testes são mostrados.
fonte
xUnit v2 tests
no título #Verifique também se um arquivo app.config completamente vazio (completamente em branco, sem absolutamente nenhuma marcação) está dentro do projeto de teste. Este foi o culpado no meu caso.
fonte
No meu caso, criei uma nova "Configuração da solução", como mostrado na imagem. Portanto, quando eu seleciono o meu personalizado como "Prod", ele não reconhece o TestMehods por algum motivo. Mudar de volta para "Debug" resolve o problema
fonte
Não sei se alguns de vocês também usam o JustMock, mas tive que desativar o criador de perfil no VS 2017 para que a detecção de teste funcionasse.
fonte