Os testes da unidade NUnit não são exibidos no Test Explorer com o adaptador de teste instalado

145

Instalei o NUnit Test Adapter para VS2012 + 2013. Quando instalei os testes do Adapter pela primeira vez, eles pararam de aparecer por algum motivo hoje. Depois de criar, reconstruir, limpar, reiniciar, nada aparece no Gerenciador de Testes. Por que isso estaria acontecendo? Estou usando o VS2013 Ultimate.

RobVious
fonte
2
Tente clicar com o botão direito do mouse no seu projeto de teste e clique em executar. Ele preencherá as janelas com os testes novamente.
Perseguição Florell
@ChaseFlorell isso não acontece. Vejo a barra verde no Gerenciador de Testes começar a desaparecer e depois parar um segundo depois.
RobVious 10/10
Você tem outras ferramentas de teste que possam estar interferindo? Eu uso o R # para executar meus testes e estou usando o VS2012, para que eu não faça o seu ambiente o suficiente. Sei que, quando fechei a janela ou executei um pequeno subconjunto de testes, a árvore de testes completa desapareceu.
Perseguição Florell
Você poderia tentar descarregar o projeto de teste, reconstrução, e então re-load-lo ...
Perseguição Florell
@ChaseFlorell Eu tenho R #, mas é lento como melaço com testes NUnit ... e estava funcionando antes, o que é frustrante. Vou tentar descarregar.
RobVious 10/10

Respostas:

87

Se seu projeto de teste estiver definido para atingir uma plataforma de 64 bits, os testes não aparecerão no NUnit Test Adapter.

Brannon
fonte
54
Pode ser que ele precise corresponder à arquitetura especificada no menu em Teste -> Configurações de teste -> Arquitetura padrão do processador
Brannon
6
@Brannon Sim. Se estiver definido como x64, os testes em projetos x64 serão visíveis.
Básico
2
Algo forma mais estúpida que aconteceu aqui - esqueceu de acrescentar [Test] atributo para o meu método de teste :)
Nikolai
Esse problema parece ainda estar presente no adaptador de teste do NUnit 3. Consulte a solução de Simoyd sobre a arquitetura do adaptador de teste (x64 x x86).
Bart
1
Esta é uma resposta incorreta. Para executar os testes, selecione "teste" -> "Configurações de teste" -> "Processador padrão Architecture" -> "x64"
Andrew Rondeau
182

Se você estiver usando uma versão do NUnit3 + , há um novo Adaptador de Teste disponível.

Vá para "Ferramentas -> Extensões e atualizações -> Online", procure "Adaptador de teste NUnit3" e instale.

Ricardo França
fonte
+1 extra porque isso também corrigiu o problema com as métricas de cobertura de código desaparecendo.
Aidanapword
Se o proxy do firewall bloqueou o URL por meio de extensões e atualizações, use esse URL para baixar o adaptador. marketplace.visualstudio.com/...
Yawar Murtaza
Observe que também pode ser necessário desativar o adaptador de teste NUnit2.
precisa
Qual é a diferença entre obtê-lo dessa maneira e obtê-lo do gerenciador de pacotes NuGet?
Octavian
Usando o NuGet, você terá acesso à API da unidade. Dessa maneira, você poderá executar os testes no Gerenciador de Testes (por padrão, ele executa apenas o Teste da MS).
Ricardo França
57

Meu conjunto de teste é de 64 bits. Na barra de menus na parte superior do visual studio 2012, pude selecionar 'Test' -> 'Test Settings' -> 'Default Processor Architecture' -> 'X64'. Depois de uma 'Rebuild Solution' no menu 'Build', eu pude ver todos os meus testes no test explorer. Espero que isso ajude alguém no futuro = D.

Simoyd
fonte
3
Verifique a arquitetura de seus assemblies e programas. Embora a plataforma da sua solução ou projeto possa estar explicitamente definida como x64, se a arquitetura de teste não corresponder, você terá problemas para executar os testes.
Dodzi Dzakuma
30

Verifique se há incompatibilidade de versões do NUnit. O adaptador de teste do NUnit atualmente disponível funciona apenas para o NUnit versão 2.6.4 e abaixo. Para fazer o downgrade do NUnit da versão 3.x, vá para o Package Manager Console> update-package NUnit -version 2.6.4

http://jeremybytes.blogspot.co.ke/2015/11/review-of-unit-testing-makes-me-faster.html

collo
fonte
6
O senhor resolveu meu problema com precisão! Obrigado! Existe um pacote de pepitas chamado NUnitTestAdapter.WIthFramework que funciona muito bem!
TheAkhemist
Eu tive um problema semelhante com a incompatibilidade de versões do NUnit. Alguns (mas não todos) dos meus testes não estavam sendo exibidos no Gerenciador de Testes, então tentei todos os tipos de recomendações, como atualizar o adaptador de teste NUnit. Eu já havia atualizado o NUnit de 3.6.1 para 3.7.1, mas por algum motivo um dos meus projetos ainda fazia referência à versão nunit.framework.dll versão 3.6.1, enquanto todo o resto fazia referência à 3.7.1. Atualizei a referência para 3.7.1 e isso fez o truque. Até agora, meus testes não desapareceram. Dedos cruzados!
jrupe
23

Na minha situação, o 'NUnit3 Test Adapter' foi desativado. Para reativá-lo, vá ao menu

Ferramentas-> Extensões e Atualizações ...

No lado esquerdo, selecione 'Instalado' -> 'Todos'.

No canto superior direito, procure por 'nunit'.

Se você tiver o 'Adaptador de teste NUnit3' instalado, com o item encontrado, poderá ativar / desativar.

insira a descrição da imagem aqui

sahl04
fonte
2
Para mim, isso não funcionou. Tentei desinstalar e fingiu ter sumido, mas estava lá após o reinício. Eu descobri que instalei o NUnit como usuário padrão e tentei desinstalá-lo como administrador. O VS não diz nada sobre isso ... Portanto, a solução é tentar ativá-lo sem privilégios de administrador ou vice-versa.
Tom
10

Esta resposta parece bastante básica, mas não foi completamente óbvia para mim no começo. Se você (re) constrói a solução, ela cria apenas os projetos configurados para construção noBuild -> Configuration Manager

Esse foi o meu problema. Devo ter alterado inadvertidamente as definições de configuração de compilação ou algo que fez com que meus projetos de teste não fossem compilados (quando eram anteriormente). Então a Test Explorerjanela estava olhando para dlls que estavam desatualizadas. Ficou claro para mim que esse era o caso depois de fazer um Cleane ver a maioria dos meus testes desaparecer e não voltar depois de uma rebuild... inspeção adicional da binpasta mostrou que esses projetos não estavam sendo construídos.

MoMo
fonte
Embora todos os projetos foram criados para construir na configuração do gerenciador eu tive que construir manualmente cada projeto de teste para fazer os testes mostram-se novamente.
quer
Criei manualmente meus projetos de teste. Isso não foi suficiente. Eu tive que fazer o que essa resposta dizia.
Jared
10

Eu tinha uma configuração funcional (para NUnit2 e NUnit3, dependendo da solução e várias versões do Visual Studio entre 2012 e 2017), e de repente parou de funcionar um dia: nenhum teste foi detectado em nenhuma solução ou versão do VS.

No meu caso, ajudou a excluir %localappdata%\Temp\VisualStudioTestExplorerExtensions. Após o reinício do VS, tudo funcionou como antes.

realMarkusSchmidt
fonte
10

Se você estiver usando o VS 2017 e o núcleo .net , conforme dito aqui , adicione referências à estrutura de teste NUnit 3.6.1 , ao executor de teste NUnit3TestAdapter 3.8.0-alpha1 e ao SDK de teste Microsoft.NET.Test.Sdk 15.0.0 .

Arvand
fonte
3
Não estou usando o .NET Core, mas a instalação do adaptador de teste NUnit quando fui para o VS2017 resolveu o problema para mim.
Ciaran Gallagher
8
  1. Ferramentas
  2. Gerenciador de Pacotes NuGet
  3. Gerenciar pacotes NuGet para solução
  4. Squeaky toy
  5. NUnitTestAdapter.WithFramework
  6. Ctrl + R, A para criar / executar testes

insira a descrição da imagem aqui

O uso do NUnitTestAdapter.WithFramework garante que haja pouca / nenhuma inconsistência nas versões do NUnit e do NUnit Adapter (ou seja, "simplesmente funciona")

brntsllvn
fonte
para mim, ele começa a funcionar após o adaptador de atualização para o NUnitAdapter3 (Menu VS -> Ferramentas-> Extensões e atualizações ...) + atualiza a página do NuGet para o NUnit de 2.6.3 a 3.2.1.
smily
1
esta é a única coisa que funcionou para mim - tinha que ser o "WithFramework" one (não apenas o adaptador padrão)
Mani5556
4

Verifique se você declarou [TestFixureSetUp] e [Test]

na classe de teste

amostra:

namespace ClassLibrary1
{
   public class SimpleCalculator
   {
      public Calculator _calculator;
      [TestFixtureSetUp]
      public void initialize()
      {
         _calculator = new Calculator();
      }
      [Test]
      public void DivideTest()
      {
         int a = 10;
         int b = 2;
         int expectedValue = a/b;
         int actualValue = _calculator.Divide(a, b);
         Assert.AreEqual(expectedValue, actualValue, "Functionality not working properly!");
      }
   }   
}
Indika Wijesooriya
fonte
1
TestFixtureSetup parece ser obsoleto, melhor é <NUnit.Framework.OneTimeSetUp>
Jochen
1

Eu tive que desinstalar e reinstalar o pacote nuget xunit.runner.visualstudio. Eu tentei isso depois de tentar todas as sugestões acima, então pode ser que foi uma mistura de coisas.

JayC
fonte
1

Uma outra causa para esse problema é se você abrir um projeto de uma unidade mapeada - o Visual Studio lida com esses projetos corretamente, mas aparentemente o Nunit não os suporta.

A cópia do projeto para um físico corrigiu o problema.

Adelin
fonte
0

Também descobri que, quando desinstalei a nunit v3.2.1, a referência da estrutura da nunit para a v3.2.1 ainda estava em meu projeto no Solution Explorer. Gerenciador de Soluções> ProjectName > Referências

Se você clicar com o botão direito, ele mostrará a versão. Remova isso e clique com o botão direito do mouse em Referências> Adicionar referência.

Procure a versão 2.x e adicione a solução de reconstrução.

Isso funcionou para mim!

RShome
fonte
0

Eu experimentei o problema mencionado pelo op

Meu caso foi que me foi entregue um projeto antigo e os testes eram realmente parte do sistema sob teste. Eu suponho que eles estavam usando o corredor de teste externo.

essa cadeia de tarefas resolveu o problema para mim

  • criou um projeto de teste,
  • mudou os arquivos de teste para lá
  • referências adicionadas para que o projeto de teste compile
  • adicionou os pacotes NuGet do adaptador Nunit e Nunit ao projeto de teste
  • recompilado

Consegui executar com êxito os testes da unidade.

greg
fonte
0

Se você estiver usando o TestCaseSourceatributo, verifique se a fonte existe e respeita a documentação , caso contrário, seus testes não serão descobertos.

Adelin
fonte
0

Eu tive um problema semelhante em que os testes não foram descobertos. Eu tinha a versão correta do NUnit, as versões correspondiam entre o NUnit e o adaptador e os testes eram marcados corretamente. Eu estava executando o VS 2017 Enterprise, não como administrador. Depois de iniciar o VS como administrador, os testes apareceram.

Robert Strickland
fonte
0

Iniciei uma nova solução com um projeto de teste e a comparei com o meu projeto original de problemas. O original, por algum motivo, tinha um app.config . Excluí esse arquivo do projeto e vi meus testes reaparecerem no test explorer.

Emmet Brickowski
fonte
0

Eu também tive esse problema, mas a causa foi diferente. Estou usando o VS2017 com o F # 4.0.

Primeiro, o console no Visual Studio não fornece detalhes suficientes sobre por que os testes não foram encontrados; falhará ao carregar a DLL com os testes. Portanto, use NUnit3console.exe na linha de comando, pois isso fornece mais detalhes.

No meu caso, foi porque o adaptador de teste procurava uma versão mais recente da DLL do F # Core (4.4.1.0) (F # 4.1), enquanto ainda estou usando o 4.4.0.0 (F # 4.0). Então, acabei de adicionar isso ao app.config do projeto de teste: -

  <dependentAssembly>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.0.0" />
  </dependentAssembly>

ou seja, redirecione para o núcleo F # anterior.

Russ Freeman
fonte
0

Eu tive o mesmo problema, quando de repente nenhum teste apareceu na janela do Gerenciador de Testes. Eu tenho a versão atualizada do "NUnit3TestAdapter"

e após várias pesquisas e esforços, descobri que precisava definir os seguintes valores nas propriedades do projeto: [Na janela Solution Explorer: clique com o botão direito do mouse em Project> Properties] Na guia Build, defina Platform = x64 e defina Platform target = x86 ou Qualquer CPU Crie o projeto e todos os testes aparecerão na janela do Gerenciador de Testes.

Nota importante: Encontrei uma solução depois de ver a próxima mensagem na janela de saída:

"A execução de teste usará DLL (s) criadas para o Framework45 e a plataforma X86. As DLLs seguintes não farão parte da execução: AutomationTests.dll foi criado para o Framework Framework45 e Platform X64."

C. Mar
fonte
0

Eu tive alguns processos msbuild.exe que foram interrompidos. Não sei se esse foi o meu problema ou não, mas demorei bastante para reinstalar vários adaptadores NUnit antes de encontrar os processos travados.

Andrew Rondeau
fonte
0

Apenas para adicionar meus US $ 0,02 aqui, encontrei um problema semelhante ontem, onde estavam faltando 168 dos meus testes. Eu tentei quase tudo neste post - principalmente certificando-me de que minhas versões do NUnit eram as mesmas - sem sucesso. Lembrei-me então de que meus testes eram divididos em listas de reprodução; e eles não são atualizados automaticamente quando você adiciona novos testes . Então, quando eu apaguei as playlists, BAM! , todos os meus testes voltaram mais uma vez.

Brian
fonte
-1

Verifique se seus testes estão marcados corretamente com o atributo Teste. Se todos os testes estiverem marcados apenas com o atributo Explícito, o TestAdapter não reconhecerá o aparelho.

Shea Leslein
fonte