Atualmente, estou trabalhando em uma solução que possui 32 Unittests. Eu tenho trabalhado com o executor de teste do recarregador - que funciona bem. Todos os testes estão sendo executados, todos estão mostrando o resultado correto. Agora, um colega de trabalho me disse que os testes não estão sendo executados em sua máquina usando o explorador de testes do Visual Studio. Eles não estão funcionando na minha máquina, portanto, posso excluir alguns arquivos ausentes locais ou algo assim.
O Gerenciador de Testes está mostrando todos os testes de unidade, mas, ao clicar em "Executar Tudo", todos os testes ficam acinzentados e não mostram resultado da execução do teste:
- Todas as classes de teste são públicas
- Todas as classes de teste estão tendo o
[TestClass]
atributo declarado - Todos os métodos de teste estão usando o
[TestMethod]
atributo - O código de produtividade e os projetos de teste estão direcionados ao .NET 3.5.
- Eu já tentei a compilação limpa a minha solução, e / ou apagar todos
obj
,bin
,Debug
eRelease
pastas
Aprecio todas as dicas que possam causar esse tipo de comportamento.
visual-studio
unit-testing
visual-studio-2012
resharper
ElGauchooo
fonte
fonte
Respostas:
Se seus projetos não são todos AnyCpu, você também pode verificar se as 2 configurações a seguir correspondem:
[Clique com o botão direito do mouse no projeto de teste] -> propriedades -> Construção -> Destino da plataforma - por exemplo, x64
[Menu principal] -> Teste -> Configurações de teste -> Arquitetura padrão do processador -> X64
Descobri que quando isso não correspondesse, meu projeto de teste falharia silenciosamente na execução.
fonte
Eu tive o mesmo problema no VS 2017. No meu caso, ele foi resolvido reiniciando o VS.
fonte
Se você estiver usando NUnit em vez de MSTest então você vai precisar do NUnit teste Adaptador de extensão para o Visual Studio 2012/2013.
fonte
Microsoft.NET.Test.Sdk
NugetEu tive que alterar meus métodos de teste assíncrono para retornar a tarefa em vez de anular.
Os testes foram então ativos e executáveis no Test Explorer.
fonte
async void Foo()
e seus analisadores não reclamaram, mas eles certamente poderiam adicionar um que sim. cc: @bradwilsonVerifique em qual estrutura os testes foram escritos (por exemplo, nunit, xunit, VS test, etc.) e verifique se você possui a extensão correta do adaptador / corredor de teste instalada.
Para mim, estava faltando o Adaptador de Teste do NUnit 3 e confirmei o número da versão exigida examinando a versão da dependência nunit.framework (selecione a .dll na árvore Dependencies do Solution Explorer e pressione F4 para abrir a janela Propriedades).
fonte
Microsoft.VisualStudio.QualityTools.UnitTestFramework
dúvida (qual versão). Problemas resolvidos em que o método não é executado (ou encontrado) removendo essa referência e instalando o MSTest.TestAdapter (e o Framework) mais recente (v2.1.0) (Microsoft.VisualStudio.TestTools.UnitTesting
obsoleto? Eu tive alguns testes usando isso que de repente pararam de executar como acima, depois de adicionar novamente algumas referências a um projeto do qual eles dependiam.Eu lutei com isso por um dia e meio. então aqui está o que eu fiz para resolvê-lo:
Sintomas
Investigação
Como todos os pacotes foram atualizados durante a atualização da estrutura .net, comecei com as diferenças entre os projetos em execução e os que não estão em funcionamento. A primeira pista foi que todos os três projetos estavam usando: MSTest.TestAdapter e MSTest.TestFramework
Naturalmente, fui ao menu suspenso -> Console de saída -> Teste no VS 2019 e observei a saída. Nada útil lá.
Etapa 1 da solução : Atualize o MSTest.TestAdapter e MSTest.TestFramework para a versão 2.0.0
Etapa 2 da solução : Agora o console de saída -> Saída suspensa de teste começou a mostrar um após o outro, pacotes ausentes e redirecionamentos de ligação incorretos
Etapa três da solução : Adicione manualmente os pacotes ausentes. Para mim, aqueles eram
Etapa 4 da solução : Removidos / corrigidos os redirecionamentos de ligação desnecessários.
Espero que isso ajude outra pessoa.
fonte
ToolsVersion
e esbarrar na mina estragou tudo. Tudo o que posso dizer é "cuidado com o comprador" para os testes de unidade da MS e esteja pronto para substituir seus arquivos * .csproj a qualquer momento, essas coisas estão totalmente integradas e dependem muito da versão.Clean-Rebuild
solução funcionou para mim.fonte
Teve o mesmo problema após a instalação limpa do VS 2019. Os testes foram encontrados, mas não executados com "Ocorreu um erro inesperado". Corrigido configurando x64 em vez de x86, que foi selecionado por padrão.
fonte
Eu descobri que no projeto não estava fazendo referência ao assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework . Em vez disso, fazia referência a Microsoft.VisualStudio.TestPlatform.TestFramework e Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions . Quando removi essas duas referências e adicionei a referência ao assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework , os testes que foram marcados anteriormente com o ponto de exclamação azul de repente se tornaram ativos e começaram a funcionar.
fonte
Eu tive esse problema e, para mim, foi causado por vários projetos de teste com diferentes versões de:
A consolidação dos pacotes de pepitas para os projetos, para que eles fossem iguais, resolveu o problema para mim.
fonte
No meu caso, foi porque um projeto de teste em minha solução tinha os pacotes de nuget MSTest.TestFramework e MSTest.TestAdapter instalados, mas os outros não. Aparentemente, esses pacotes não eram necessários para executar testes até que um projeto na solução os tivesse instalado.
O problema foi corrigido com a instalação desses pacotes em projetos de teste ausentes.
fonte
O que o corrigiu para mim foi a atualização dos pacotes de nuget do MS.Test
fonte
Instalar o
Nunit3TestAdapter
Nuget resolveu este problemafonte
A configuração da arquitetura do processador para projetos AnyCPU no Test Explorer corrigiu meu problema! Veja a captura de tela acima.
fonte
No meu caso, eu tive um
async void
método e substituí porasync Task
, portanto, o teste é executado como eu esperava:substituir com :
fonte
Eu tive os mesmos sintomas.
Verifique se você possui a extensão apropriada do Visual Studio instalada em Ferramentas - Extensões e atualizações. No meu caso, tive que instalar o XUnit e o Specflow a partir da opção Online.
Em seguida, limpe a solução e reconstrua-a.
Se isso ainda não ajudar, limpe seu diretório temporário (pesquise% temp% no menu Iniciar e exclua todo o conteúdo em Temp)
E, finalmente, tente desinstalar o Resharper, que finalmente corrigiu o meu problema.
fonte
Aqui estava o projeto de teste não foi marcado para ser construído:
Build -> Configuration Manager ... -> verifique a build do seu projeto de teste
fonte
Desde que cheguei aqui com esse tipo de erro, posto meu problema / solução:
Sintomas:
Problema:
Houve um erro no código que lança uma exceção dentro de outro segmento. Todas as asserções de teste foram aprovadas, mas cancelaram a execução do teste. Eu pude ver o erro na "Saída de testes" (NullException).
fonte
Teve os mesmos sintomas, no meu caso, foi a versão do SDK do dotnet core que foi o problema.
Os projetos tinham como alvo o 2.2 e puderam construir usando o 3.0. Depois de instalar a versão mais recente do SDK 2.2, eles puderam executar.
fonte
Você pode visualizar a saída de erro do seu executor de teste, abrindo o painel Saída (exibição -> saída) e escolhendo "testes" no menu suspenso "Mostrar saída de"
Além disso, se você tiver o Resharper instalado, poderá abrir um arquivo de teste e passar o mouse sobre o círculo de teste ao lado de um teste para obter informações adicionais sobre erros
Clicar nesse botão levará você a uma janela com informações mais detalhadas. Como alternativa, você pode abrir essa janela acessando Extensões -> Remodelador -> Windows -> Resultados da Exploração de Teste de Unidade
fonte
Tentei muitas opções com o Visual Studio 2019 Versão 16.4.6 e
Microsoft.VisualStudio.TestTools.UnitTesting
, por enquanto, a única maneira de executar testes com êxito era invocando o próximo comando no consoleOs testes são descobertos no Gerenciador de Testes, mas o resultado é "Não Executar".
A atualização do Visual Studio não ajudou.
Resolva o problema com "Nenhum teste corresponde ao filtro de caixa de teste fornecido FullyQualifiedName" executando atualizações da versão mais recente para os próximos pacotes:
fonte
Para mim, a solução foi alterar as configurações de Teste da unidade de recarregador "Arquitetura da plataforma padrão" para "x64"
fonte
Para mim, reiniciar o VS2017 não funcionou. Eu tive que limpar o sln e, em seguida, encontrei um arquivo com testes que não eram executados e apenas executavam esse arquivo. Depois disso eu corri tudo e funcionou normal novamente.
fonte
Eu tinha uma versão diferente dos pacotes de nuget NUnit (3.11.0) e NunitTestAdapter (3.12.0). Quando atualizei o NUnit para a 3.12.0, o Visual Studio executou testes.
fonte
No meu caso, ele trabalhou para atualizar os pacotes de nuget do MSTest. Pode reproduzir esse problema mesmo no projeto MSTest em branco e atualizar os pacotes funcionados.
fonte
Para mim, ter uma propriedade chamada TestContext em uma classe base estava causando esse comportamento. Por exemplo:
fonte
Posso dizer pelos seus atributos que você está usando o MSTest. Eu tive um problema semelhante: meus testes estavam aparecendo no Gerenciador de Testes, mas quando eu tentava executá-los (escolhendo Executar Tudo ou selecionando-os individualmente), eles não o faziam.
Meu problema foi que eu criei o projeto de teste de unidade manualmente a partir de um projeto vazio da Biblioteca de Classes .NET Standard. Eu havia instalado o
MSTest.TestFramework
pacote NuGet, mas não oMSTest.TestAdapter
pacote. Assim que eu instalei o pacote do adaptador, eles foram executados conforme o esperado.Parece óbvio em retrospecto, mas quando você cria projetos de teste de unidade a partir de um modelo, toma essas coisas como garantidas.
fonte
Vale ressaltar que algumas vezes os arquivos do NUnit Test Adapter são corrompidos na pasta do usuário C: \ Usuários [Usuário] \ AppData \ Local \ Temp \ VisualStudioTestExplorerExtensions \ NUnit3TestAdapter.3.8.0 / build / net35 / NUnit3.TestAdapter.dll no Windows 10 e isso faz com que o Test Explorer pare de funcionar como deveria.
fonte
Eu uso o VS2019 com o .Net 4.7. Instalei a extensão NUnit v3 e alterei as configurações de teste para usar o X64. Meu projeto de teste de unidade é Qualquer CPU (funcionaria se eu o alterasse para x64). Agora eu posso depurar através do meu código.
fonte
Esse problema também é observado quando o método de teste que está sendo executado lança uma StackOverflowException , fazendo com que o executor de teste aborte a execução de teste, resultando na saída
0 tests run
.Para encontrar o culpado e resolvê-lo colocar um break point no início de ambos TestInitialize e TestMethod decorado métodos, execute o teste de unidade no modo de depuração, proceda passando por cima (F10) até que a exceção é lançada.
fonte