Nenhum teste encontrado. Certifique-se de que os descobridores e executores de teste instalados, as configurações de plataforma e versão da estrutura sejam adequadas e tente novamente

95

Estou no processo de atualização de nossa solução existente para .Net 4.6.1 e não consegui fazer nossos testes de unidade rodarem durante a construção de um servidor. Eles são executados localmente conforme o esperado e, ao voltar a versão do framework para .Net 4.5.1, eles são executados novamente no servidor.

Eu estou recebendo o seguinte erro:

Nenhum teste encontrado. Certifique-se de que os descobridores e executores de teste instalados, as configurações de plataforma e versão da estrutura sejam apropriados e tente novamente.

Eu reproduzi o problema em uma configuração mais simples:

  • Solução com um único projeto de Teste de Unidade C # com dois testes (um com falha e um com aprovação).
  • Definição de compilação XAML usando o modelo padrão (TfvcTemplate.12.xaml)
  • TFS 2015 Atualização 1 Servidor de compilação XAML com Visual Studio Enterprise 2015 Atualização 1 instalado (tem seis servidores semelhantes e todos produzem o mesmo resultado)
Tore Østergaard
fonte
De acordo com Brian Harry, da Microsoft, esse é um bug que eles estão investigando. Deve ser corrigido na atualização 2 e uma solução temporária deve ser postada mais tarde. Fonte: link
Tore Østergaard
Tenho o mesmo problema para .Net 3.5 SP1 no Visual Studio 2013 Atualização 5.
Andrey Bushman
@AndreyBushman: O erro pode estar em 2013U5 também, pois foi lançado junto com 2015RTM. Mas a solução alternativa deve funcionar no seu caso também.
Tore Østergaard
Eu tive um problema semelhante, a solução alternativa foi simplesmente em vs, nas configurações de teste, para selecionar o bit do processador padrão correto (32/64), e não manter o motor em execução. (vs 2017.x)
kfn

Respostas:

59

Você pode tentar alterar a arquitetura do processador padrão em sua configuração de teste de X86 para X64. No meu caso, esse era o problema.

Isso acontece se o destino da plataforma de seu projeto em teste estiver definido como x64.

Captura de tela das configurações de teste

rubeonline
fonte
Isso resolveu para mim. No meu caso, tanto o projeto que está sendo testado quanto o projeto de teste foram configurados para x86. Os testes foram detectáveis, mas não foram executados. Depois que mudei para Qualquer CPU, os testes foram executados.
datchung de
Eu simplesmente tive o mesmo problema e isso resolveu. Também estou bastante desconfiado de que isso pode ter tido um efeito negativo sinérgico nas referências do meu projeto principal, que de repente parou de carregar um DLL específico, mas não determinou de forma conclusiva esse efeito colateral desagradável.
Allen
44

Minha construção também não estava encontrando os testes. Minha configuração e solução para encontrar os testes são as seguintes.

Eu uso VSTS (Visual Studio Team Services) e tenho um build que está configurado para atualizar os pacotes NUGET em cada build. Estou usando o NUnit e descobri que executar o seguinte comando NUGET (do console do gerenciador de pacotes no Visual Studio) para adicionar a biblioteca NUnitTestAdapter ao meu projeto de teste e a verificação em packages.config fez com que os testes fossem executados em minha compilação VSTS.

Install-Package NUnitTestAdapter

Como Maurice menciona no comentário a este post para NUnit3, use o seguinte pacote NUGET (procure outros utilitários no link, ou seja: dotnet CLI e Paket CLI)

Install-Package NUnit3TestAdapter

Espero que isto ajude.

Nick Rubino
fonte
10
Também estou usando o VSTS. Conforme avisado, adicionei o NUnit3TestAdapter (já que estou usando o NUnit 3.8.1) e essa solução resolveu meu problema. Obrigado :-)
Maurice Klimek
1
O pacote de instalação NUnit3TestAdapter resolveu meu problema :)
Bimal Das
26

No meu caso, tinha que:

1) converter projeto de teste para netcore 2.0 (era netstandard 2.0)

2) adicionar pacote nuget xunit.runner.visualstudio

Referência: http://www.neekgreen.com/2017/11/20/xunit-no-test-is-available/

woohoo
fonte
2
mesmo problema estava comigo. Estou usando o xunit com .net core
Amna,
Isso também funcionou para mim no Visual Studio 2017 com xunit e .NET Core 2.1.
Thorkil Værge
3
no meu caso, era um projeto .net 4.6.1, então a única coisa que faltava era o xunit runner. Instalei e funcionou.
Juan
1
O mesmo que Juan. Apenas o pacote runner estava faltando. Executar isso no gerenciador de pacotes para o projeto de teste resolveu: install-package xunit.runner.visualstudio
Premil
11

Recebi este erro e consegui resolvê-lo.

  1. Eu uso o Visual Studio Professional 2017
  2. No VS, eu naveguei para Ferramentas -> Extensões e atualizações
  3. Na parte superior do menu, notei que meu adaptador NUnit estava desativado
  4. Cliquei no botão [Ativar]
  5. Consegui iniciar os testes sem erros.
J Wood
fonte
Sim! E não se esqueça de reiniciar o Visual Studio. Isso foi necessário para mim.
Michael Levy
"No topo do menu" o que isso significa?
Sean Kendle
1
@SaiyajinGohan. Depois de concluir a etapa 2, a janela "Extensões e atualizações" é exibida. Na parte superior desta janela, vi que o adaptador NUnit foi desativado. Espero que isso esclareça ....
J Wood
Obrigado por isso, eu ainda não consegui fazer isso funcionar com o projeto em que estava trabalhando. Felizmente, era um projeto de teste e o próximo funcionou. Ainda é um mistério o porquê.
Sean Kendle
10

Estou usando o MSTest. Para mim, era uma versão incorreta e faltava outro pacote dependente -

1) Minha pasta de pacotes contém apenas o pacote MSTest.TestFramework.1.2.1. No meu arquivo de projeto (.csproj), a referência no Nome do destino era o pacote MSTest.TestAdapter.1.2.0, que não estava presente na pasta do pacote. Meu packages.config também tem referência de MSTest.TestFramework.1.2.0.

2) Então instalei MSTest.TestAdapter.1.2.0 do gerenciador de pacotes nuget e alinhei a versão MSTest.TestFramework a 1.2.0 no arquivo de projeto e pacote. Por fim, adiciono Microsoft.VisualStudio.TestPlatform.TestFramework e Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions à referência.

Então tudo estava bem. Espero que isso ajude alguém.

quasar
fonte
Eu me deparei com isso com .Net 4.6.1 VS2017. Acabei revertendo para 1.2.0 - definitivamente certifique-se de não ter duas versões diferentes em sua pasta de pacotes ou no controle de origem.
Jeremy Thompson
2
O meu parecia encontrar os testes, mas sim, a falta de "MSTest.TestAdapter" era o verdadeiro problema. Sem erros ou avisos legais (VS2017 15.8). Tudo parecia bem, exceto que nenhum teste foi encontrado, apesar de aparecer no explorador de teste ... Então, quando eu fiz "instalar o pacote MSTest.TestAdapter" de repente, meus testes foram executados conforme o esperado. Obrigado MS - 3 horas perdidas ...........
James Joyce
1
Instalar o MSTest.TestAdapter 1.4.0 funcionou para mim no VS 2019. Eu só perdi 30 minutos graças a você.
furman87
6

Esse problema surge para o Visual Studio 2017 novamente. Provavelmente outro bug, mas o mesmo resultado.

Uma solução alternativa que parece funcionar é desinstalar o Microsoft Visual Studio 2017 Remote Debugger da máquina afetada.

Csapi007
fonte
5
  1. Instale a versão mais recente do Nunit e do NUnitTestAdapter do pacote NUGET.
  2. Vá para -> Teste -> Configurações de teste -> Arquitetura do processador padrão -> Alterar para X64
  3. Construa a solução.
  4. Isso resolverá o problema de Executar teste e depurador no teste de unidade e começará a funcionar.
Karthikeyan Nandagopalan
fonte
Isso realmente funcionou para mim depois de bater minha cabeça em tantas direções e sugestões.
rajibdotnet
4

Eu tive o mesmo problema no VSTS com .Net 4.6.2. Se você estiver vendo isso na saída do console do VSTS, a solução alternativa fornecida por @Sushil ainda funciona no VSTS e é necessária. Infelizmente, a tarefa "Test Assemblies" fornecida pela Microsoft passa, então você realmente nem sabe que há um problema, a menos que verifique a saída e não encontre nenhum de seus testes realmente executado!

Correção de teste VSTS

raterus
fonte
Meu problema era com a atualização 1 do TFS 2015 (local) e foi corrigido com a atualização 2. Não tenho certeza se o mesmo problema existia / existia com o VSTS.
Rasgou Østergaard de
4

Se você estiver executando seus testes dentro do docker usando a construção de vários estágios e os testes não forem encontrados. Certifique-se de copiar todos os arquivos, não apenas os arquivos de projeto, como abaixo da seção Dockerfile.

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["MainProject/FirstApp.csproj", "MainProject/"]
COPY ["TestProject/*", "TestProject/"]

RUN dotnet restore "TestProject/TestProject.csproj"
RUN dotnet build "TestProject/TestProject.csproj" -c Release
RUN dotnet test "TestProject/TestProject.csproj" -c Release
Bassam Gamal
fonte
Isso realmente me incomodou. Acho que a dica de que isso está acontecendo é que ENCONTRA a DLL de teste de unidade, mas NÃO encontra nenhum teste nela. Também descobri que colocar isso em linha após suas instruções de cópia permitirá que você inspecione para ver o que foi copiado (aqui / app / tests é o seu diretório de destino na imagem Docker): RUN file = "$ (ls -al / app / tests) "&& echo $ file (veja esta postagem para mais informações sobre echo )
David Yates
3

Corrigi isso por problema no projeto de teste VS 2017 e 4.6.2 com as seguintes etapas:

  1. Remova as referências a Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll e extensões
  2. Instale o pacote nuget Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated
Ste Brown
fonte
3

Certifique-se de que o nuget "Microsoft.NET.Test.Sdk" esteja instalado.

Lordpansar
fonte
2

Este é um problema conhecido do .Net 4.6 agora.

Não é possível executar testes de unidade .Net 4.6.x como parte de um XAML TFS Build com TFS 2015 UPdate1 Fonte: https://connect.microsoft.com/VisualStudio/feedback/details/2245723

Aqui está uma pergunta semelhante para sua referência: Não é possível executar testes de unidade .Net 4.6 do servidor de compilação TFS 2015 XAML

PatrickLu-MSFT
fonte
2
Olá, Patrick. Ambos os links que você fornece são casos abertos por mim, então eu não confiaria neles como referência ;-).
Tore Østergaard
2

Eu fixo este problema reinstalando todos os testes relacionados com pacotes NuGet para o projeto: Xunit, Xunit.runner.vistualstudio,Microsoft.Net.Test.Sdk

n.shojaei
fonte
1

Eu estava tendo um problema semelhante e percebi que, de alguma forma, um app.configarquivo foi adicionado ao meu projeto de teste. Remover este arquivo de configuração corrigiu para mim.

thatWiseGuy
fonte
1

Vou jogar minha solução na pilha. No meu caso, estou adicionando alguns projetos a uma solução existente junto com projetos de teste para eles. Estamos usando o MSTest. Havia um arquivo UnitTest.testsettings anterior ativado na solução que estava causando problemas de compatibilidade.

Clicar no arquivo de configurações removeu a verificação e a execução do teste foi bem-sucedida para meus testes.

insira a descrição da imagem aqui

jwatts1980
fonte
1

Encontrou uma maneira! Provavelmente não o mais ortodoxo, mas ajudou-me rapidamente:

  1. Atualize os pacotes MSTest.TestAdapter e MSTest.TestAdapterFramework para 1.4.0 em Ferramentas> Gerenciador de pacotes NuGet.
  2. Em seguida, limpe a solução e execute os testes novamente.

Não acho que haja nada de particular com a versão, mas atualizá-la certamente limpa qualquer referência que seja ruim na solução / projeto.

dave_077
fonte
0

Isso é apenas para recapitular a solução apresentada por @Sushil anteriormente.

Este é um problema conhecido no Team Foundation Server 2015 RTM + Atualização 1 e será corrigido na Atualização 2, referência .

Há uma solução alternativa descrita por @Sushil aqui , que inclui a adição de um arquivo .runsettings que força o executor de teste a uma estrutura .Net mais antiga (não que você precise especificá-la na caixa de diálogo "Adicionar / Editar execução de teste" como adicioná-la diretamente no editor do processo de construção será ignorado).

Tore Østergaard
fonte
0

Usando .Net Core com um pipeline de construção no TFS 2017, minha etapa de teste do Visual Studio estava passando sem realmente executar nenhum teste. Tive que editar a etapa "Opções de execução avançada" -> "Outras opções do console" para incluir:

/framework:".NETCoreApp,Version=v2.0"

(Esse campo também contém /platform:x64)

Marca
fonte
0

No Visual Studio 2017, acabei de desinstalar e reinstalar o NUnitTestAdapter ou instalar um novo pacote como o pacote NUnitTestAdapter.WithFramework e o problema desapareceu.

Ali Yousefi
fonte
0

Recebi este erro porque minha aula de teste de unidade não era pública.

Ex:

class ClientTests

Erro na saída:

...\bin\Debug\Tests.dll] UTA001: TestClass attribute defined on non-public class ClientTests

Correção:

public class ClientTests

Praia de Jared
fonte
0

Estou tendo o mesmo problema. Estou usando o Visual Studio 2017 Community Edition.

insira a descrição da imagem aqui

Usei estas etapas para descobrir com sucesso todos os meus casos de teste e executá-los com sucesso:

  • Primeiro vá para Extensões e atualizações, instale o adaptador de teste NUnit3. Se você já o fez, basta habilitá-lo.

  • Reinicie seu Visual Studio 2017, ele solicitará automaticamente a
    instalação de sua extensão, se um prompt disser para encerrar a tarefa para continuar a
    instalação, basta clicar em "Finalizar Tarefa".

  • Depois disso, reconstrua seu projeto de teste e todos os casos de teste serão identificados e você poderá começar a executar seus casos de teste.

Willy David Jr
fonte
0

No meu caso Reinstalando Adaptador Nunit3, Excluindo Pastas Temporárias, Alterando Arquitetura e nada funcionou. É por causa do Daemon Resharper que causou o problema.

Add or Remove Programs> Find Resharper > Repair > Install again > Restart VS 

Isso resolve os problemas.

Riyaz Hameed
fonte
0

Este erro pode ocorrer para testes assíncronos se você tiver o tipo de retorno errado. O tipo de retorno deve ser Task e não nulo.

user3533716
fonte
0

Depois de adicionar o TestAdapterPath no comandante, funcionou para mim:

vstest.console.exe Xom.Gci.Lvf.FileParserInvoker.UnitTests.dll /TestAdapterPath:"C:\****\****\{SolutionFolder}"
dixiashi
fonte
Em primeiro lugar, você deve ter certeza de que o caso de teste pode ser executado no VS IDE.
dixiashi
0

No meu caso, os testes foram descobertos, mas a execução resultou em "Teste não disponível ... " e no (in) famoso: "Certifique-se de que o descobridor de teste e os executores estejam registrados e as configurações de plataforma e versão do framework sejam apropriadas e tente novamente."

o erro foi independente do Visual Studio (testado a partir de ferramentas dotnet CLI e teste UNit quase vazio) e foi apenas quando direcionado ao .NET 4.7.1. app dotnetcore funciona bem.

também executando testes com o Nuint3 CLI nunit3-console.exe Tests.csproj mostra o erro:

"O conjunto não contém testes ou o driver de teste adequado não foi encontrado."

o erro ocorreu porque o adaptador de teste não pôde ser encontrado em uma unidade ou compartilhamento de rede (mapeado) e foi resolvido copiando-o localmente e executando novamente.

Falco Alexander
fonte
0

se você já instalou um adaptador de teste no projeto de teste, tente desinstalar do projeto e instale-o novamente no projeto de teste.

Essa correção básica funciona para mim.

Parth Darji
fonte
0

Tente executar vstest.console.execom --diag:diag.txte inspecionar a saída. Para mim, foram falhas de carregamento de DLL para adaptadores de teste do meu diretório de trabalho:

TpTrace Information: 0 : 14976, 1, 2020/03/10, 15:34:22.120, 57158093583, vstest.console.exe, AssemblyResolver.OnResolve: Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter: Failed to load assembly. Reason:System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)

File name: 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.

Eu trabalhei em torno isso adicionando <loadFromRemoteSources enabled="true"/>sob <runtime>a vstest.console.exe.config

andrew.rockwell
fonte
0

Eu uso o MSTest.

Instalei a partir do Nuget a versão mais recente de MSTest.TestFramework e substituí OOB. Remova as referências a Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Em seguida, instalado a partir do neget a versão mais recente de Microsoft.TestPlatform

Isso me permitiu executar o teste com um comando:

".\packages\Microsoft.TestPlatform.16.6.1\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" "UnitTestProject1\bin\Debug\UnitTestProject1.dll" /logger:trx

Mas recebi o mesmo erro. A causa raiz do erro é que eu não especifiquei um adaptador de teste que analisa a montagem e encontra os testes.

Solução:

  1. Instale um pacote nuget "MSTest.TestAdapter"

  2. Especifique um adaptador de teste no final de um comando:

    /TestAdapterPath:".\packages\MSTest.TestAdapter.2.1.2\build_common "

MirrorBoy
fonte
0

Para aqueles que estão enfrentando problemas semelhantes .Aqui está a solução, instale o SpecFlowPlusRunner.

Tentei muitas outras soluções, como reinstalar, excluir o cache, etc. Mas a solução é realmente diferente, precisamos instalar SpecRun.SpecFlow2.3.0 para visualstudio 2017. Isso resolveu o problema.

Espero que isso ajude a todos.

Laxmi
fonte
0

Enfrentei o problema semelhante quando tentei nUnit no VS 2017 e não é um projeto central. A instalação NUnit3TestAdaptercorrigiu o problema.

Surendra Rayapati
fonte