Eu tenho uma solução simples no visual studio 2013 que é composta por um projeto da web, um projeto de biblioteca e um projeto de teste de unidade. Quando abro a solução e tento executar os testes de unidade, eles não são descobertos pelo visual studio. Para executar os testes, tento ir ao menu e escolher Teste -> Executar -> Executar todos os testes ou abrindo a janela do test explorer. Por esses métodos, o visual studio não descobre nenhum teste na solução.
Criando primeiro um projeto simples de testes de unidade e tentando executar o teste, o Visual Studio sabe descobrir o teste e eu posso executá-lo. Então, se eu abrir minha solução anterior, o visual studio agora descobrirá todos os testes. Tento salvar minha solução, mas fechando-a e reabrindo, sem criar um projeto de teste de unidade primeiro, o visual studio não encontra os testes novamente. Esse é um comportamento muito estranho que eu não sei por que isso está acontecendo.
Eu costumava trabalhar sozinho neste projeto que estava usando o git de controle de fonte integrado à fundação da equipe do visual studio. O problema do visual studio não descobrir os testes de unidade começa quando um novo elemento chega ao projeto e quando preciso recriar a solução através do controle de origem online. Antes disso, todos os testes sempre eram descobertos pelo visual studio.
Para a criação dos testes de unidade, uso a dll Microsoft.VisualStudio.QualityTools.UnitTestFramework. Minha versão do visual studio é: Microsoft Visual Studio Express 2013 para Web Versão 12.0.30723.00 Atualização 3. Minha versão da estrutura .net é 4.5.50938.
Todos os meus testes são assim:
[TestClass]
public class Service1Test
{
[TestMethod]
public void Test1()
{
Assert.IsTrue(True);
}
}
fonte
Respostas:
Algumas coisas que notei que tenho que fazer de tempos em tempos para que os testes apareçam corretamente.
Se sua solução está em uma unidade protegida e você precisa de acesso de administrador para ler / gravar, algumas vezes apenas uma parte dos testes é exibida. Definitivamente, execute o VS como administrador nesse caso.
Se sua solução for de 64 bits, verifique se Teste> Configurações de teste> Arquitetura padrão do processador está definido como x64. Às vezes, é definido como x86. Defina-o como x64 e depois recrie.
Às vezes, apenas reiniciar o Visual Studio faz o truque porque o test explorer será iniciado novamente.
Não se esqueça de criar o projeto / solução de teste. (Se você deseja que ele seja construído com o restante dos projetos, clique com o botão direito do mouse em sua solução> Propriedades> Propriedades de configuração> Configuração> marque a caixa "Build" para o seu projeto de teste)
Verifique se os testes estão em uma
public
seção da sua classe de testefonte
Se você estiver usando o NUnit, baixe o NUnit Adapter primeiro.
Vá para Ferramentas → Extensões e atualizações… → Online → procure por "NUnit Test Adapter".
fonte
Verifique se a sua classe de teste é
public
para que possa ser encontrada. E se você estiver fazendo referência a outra classe, verifique o mesmo.Além disso, às vezes, se você não tiver Asserts ou não estiver decorando o teste com a
[TestMethod]
, um teste poderá não ser reconhecido.Mais duas coisas: 1) Os testes de unidade assíncrona são engraçados na melhor das hipóteses, e nenhum na pior. Dê uma olhada neste artigo de Stephen Cleary e mantenha-o a partir daí, se for do seu interesse.
2) Se você usa o NUnit e se
[TestCase]
depara com os mesmos problemas, lembre-se de que é para o Nunit, em vez de[TestMethod]
Dito isto, aqui está um artigo que eu publiquei no projeto de código, com os dois
MSTest
&NUnit
, caso você queira dar uma olhada e verifique se não está perdendo nada.fonte
using Microsoft.VisualStudio.TestTools.UnitTesting;
Eu tive o mesmo problema, mas nenhuma das outras soluções funcionou. Acontece que eu estava usando a estrutura do NUnit 3 com o adaptador 2.
Se você estiver usando o NUnit 3, vá para Extensões e atualizações e instale o NUnit3 Test Adapter.
fonte
Estou tendo esse problema de tempos em tempos. O que funciona para mim é desligar o Visual Studio e ir para a pasta:
e exclua o conteúdo.
Depois de abrir o Visual Studio e carregar seu projeto novamente, o Gerenciador de Testes deve conter novamente seus testes
fonte
%LocalAppData%\Microsoft\VisualStudio\16.0_03b7a93c\ComponentModelCache
Os usuários do XUnit podem perceber que a janela Test Explorer não lista mais nenhum teste. Para tornar os testes detectáveis novamente, tente esta dica importante , destacada abaixo.
fonte
Para futuros googlers, tive um cenário raro que causou isso.
Na minha classe de teste base, eu tinha uma propriedade chamada TestContext. Isso interferiu na propriedade TestContext reservada do MSTest, ocultando todos os meus testes do VS / Resharper, exceto um (que não foi herdado da base).
fonte
public
.para mim, estava alterando 'configurações da solução' para Debug (em vez de Release).
fonte
Meu problema era porque meu método de teste de unidade não era nulo e estava recebendo parâmetros.
fonte
Descobri que os métodos de teste de unidade marcados como
async void
não foram descobertos pelo VS Test Explorer. Parece que o VS não teria como esperar que um teste terminasse e decidir se foi ou não bem-sucedido. Se você absolutamente precisar de um método de teste para executar de forma assíncrona, faça com que ele retorne uma tarefa como preferirasync Task
. Eu descobri que isso corrigia o problema para mim.fonte
Tente criar todos os projetos como MSIL (qualquer CPU) em vez de x86 / x64. Trabalhou para mim estranhamente
fonte
Enquanto a solução de AndyG funciona, uma solução mais duradoura pode ser definir a variável de ambiente PreferredToolArchitecture como "x64", seja:
Como fazer o Visual Studio usar a cadeia de ferramentas amd64 nativa
ou pela:
fonte
Eu estava enfrentando o mesmo problema e lembrei-me novamente (essa situação aconteceu antes) de que a seleção de "Plataforma mista" no menu da plataforma de soluções funciona, assim como as outras respostas.
fonte
Eu consegui adicionar o meu como
começou a trabalhar depois que eu removi a estática ....
fonte
Vá para o gerenciador de pacotes Nuget e faça o download do Nunit Adapter da seguinte maneira.
fonte
vá para o menu do projeto> Configuration Manager, verifique se a plataforma do projeto de teste corresponde ao restante do projeto e marque para compilar e reconstruir.
fonte
Acabei de me deparar com isso, assim como não vi um caso semelhante ao meu.
No
.csproj
arquivo do meu projeto de teste, a privacidade de referência do NUnit foi configurada paraFalse
:Depois que eu definir
<Private>
aTrue
ele trabalhou.fonte
Você só precisa instalar este pacote apenas:
NUnit TestAdapter
fonte
Para que os testes sejam mostrados na janela do Gerenciador de Testes, tive que instalar o NUnit3 Test Adapter 3.0, que não estava disponível no Gerenciador de Pacotes.
Transferido de https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d
fonte
Eu tive o mesmo problema.
Isso ocorreu devido à versão incompatível do NUnit que eu adicionei ao meu projeto (3.2.0) e ao Adaptador de Teste que eu tinha instalado (2.0.0).
Para corrigir, use "Ferramentas> Extensões e atualizações" e procure o NUnit3 Test Adapter, ele descobriu meus testes depois disso.
Felicidades
fonte
Digamos apenas por razões de argumento que você precisa usar a arquitetura X64 em seu projeto de teste para que as dependências sejam construídas corretamente (como no meu caso). Pode ser necessário modificar sua Arquitetura de processador padrão no menu Teste - Configurações de teste . Definir isso como X64 permitiu ao meu test explorer encontrar meus testes usando o Microsoft.VisualStudio.TestTools.UnitTesting.
fonte
Desculpe por adicionar à lista longa, mas tive um problema completamente diferente. Primeiro, gostaria de mencionar que descobri o meu problema ao clicar em 'Executar tudo' no Test Explorer e depois assistir à janela de saída da compilação no Visual Studio. Você precisa assistir ativamente, pois depois a mensagem desaparece.
Quanto ao problema, parece que durante a verificação dos testes, a DLL é carregada e seus tipos de testes são enumerados. Isso faz com que as referências sejam carregadas e, se ocorrer alguma falha durante esse processo, os testes não serão mostrados no explorador. Tive dois problemas para impedir que a DLL de teste fosse carregada com êxito:
fonte
Se você carregar uma solução do Visual Studio (Comunidade VS 2015 no meu caso) de um compartilhamento de rede ou diretório Meus Documentos que faz parte de um compartilhamento , você encontrará esse problema. Eu o resolvi movendo a solução e seus projetos subjacentes para uma pasta local.
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
Me deparei com o mesmo problema. E investigou e descobriu que as DLLs não foram construídas e colocadas na pasta correta. assim que mudei minha configuração, eles apareceram. - as opções de criação de projetos, qual pasta deve ser usada? - a entrada do menu de compilação configuração de compilação, eles devem ser verificados.
isso consertou para mim.
fonte
Para o Visual Studio 2013.5, limpar o diretório \ TestResults na solução ajudou. O Visual Studio corrompeu o arquivo mdf no qual armazena os testes descobertos, impedindo a descoberta de testes de unidade.
fonte
Verifique se todos os seus projetos estão em execução com a mesma configuração. Nas propriedades do seu projeto => Debug => Plataforma na lista suspensa, escolha a plataforma apropriada (para mim era "Qualquer CPU") conforme determinado em seus outros projetos.
fonte
fonte
Teve o mesmo problema; testes de repente deixaram de ser descobertos.
O Adaptador de teste da unidade havia sido desativado de alguma forma. Clicar em ativar no gerenciador de extensões o corrigiu para mim.
fonte
Eu tive o mesmo problema até perceber que cometi um erro de recortar / colar e parei
[Test Method]
antes do teste.fonte