Eu tenho uma classe de teste e abaixo eu publiquei um teste de amostra da classe de teste
namespace AdminPortal.Tests.Controller_Test.Customer
{
[TestClass]
public class BusinessUnitControllerTests
{
private IBusinessUnitRepository _mockBusinessUnitRepository;
private BusinessUnitController _controller;
[TestInitialize]
public void TestInitialize()
{
_mockBusinessUnitRepository = MockRepository.GenerateMock<IBusinessUnitRepository>();
_controller = new BusinessUnitController(_mockBusinessUnitRepository);
}
[TestCleanup]
public void TestCleanup()
{
_mockBusinessUnitRepository = null;
_controller.Dispose();
_controller = null;
}
#region Index Action Tests
[TestMethod]
public void Index_Action_Calls_GetAllBusinessUnit()
{
_mockBusinessUnitRepository.Stub(x => x.GetAllBusinessUnit());
_controller.Index();
_mockBusinessUnitRepository.AssertWasCalled(x=>x.GetAllBusinessUnit());
}
}
}
Quando executo o projeto, recebo a seguinte tela
Eu verifiquei as referências e o projeto de teste tem a referência ao projeto principal. Alguma idéia de por que o teste não está sendo executado ou está dizendo que eles eram inconclusivos?
Editar 1:
Vi uma postagem aqui e alterei a arquitetura do processador padrão da configuração do teste para X64, mas ainda não funciona.
c#
asp.net-mvc
asp.net-mvc-4
unit-testing
resharper
Cybercop
fonte
fonte
Respostas:
No caso de nenhuma das opções acima funcionar para alguém, eu corrigi minha instância desse erro ao observar uma entrada corrompida no meu App.Config devido a um pacote de nuget ausente no projeto de teste.
fonte
<configSections>
.Para mim, foi bastante frustrante, mas pelo menos encontrei a solução para o meu caso:
Se o seu TestMethod for assíncrono, não poderá ser anulado. DEVE retornar Tarefa.
Espero que ajude alguém :)
fonte
Eu tive o mesmo problema com o recarregador e corrigi esse erro alterando uma opção:
Re-afiador => Opções => Ferramentas => Teste de Unidade
Eu apenas tive que desmarcar a opção "Conjuntos de cópias de sombra sendo testadas"
fonte
Foi um problema do Resharper. Nas opções do Recarregador-> Ferramentas-> MSTEST, desmarquei o Use Legacy Runner e agora ele funciona.
fonte
Eu estava tendo esse problema, e acabou sendo o mesmo que esse problema aqui . Esta resposta resolveu o problema para mim .
A segunda vez que encontrei esse problema, foi devido a um e comercial no caminho do arquivo para o projeto em que os testes residem. Funciona bem com o testador do ReSharper, mas não com o dotCover. Remova o e comercial do caminho do arquivo.
Este é um erro confirmado com dotCover.
fonte
Para mim, basta limpar e reconstruir a solução.
fonte
Para mim, o problema era um arquivo XML de configurações do NUnit / ReSharper corrompido (devido a uma falta de energia inesperada).
Para identificar o erro, iniciei o Visual Studio com este comando :
O exame do arquivo revelou a seguinte exceção:
Observe que este NÃO é o app.config do projeto de teste!
Uma rápida pesquisa ao redor identificou o seguinte arquivo como o culpado:
Existia, mas estava vazio. Excluir e reiniciar o Visual Studio resolveu o problema.
(Usando o Visual Studio Professional 2017 v15.3.5 e ReSharper 2017.2.1).
fonte
Eu enfrentei esse problema na atualização 3 vs 2017 com o Resharper Ultimate 2017.2
Reiniciar vs ou reiniciar a máquina não pode ajudar.
Resolvi o problema limpando o cache da seguinte maneira:
Atualizar:
Há um botão "erro" (acho no Resharper 2018) no canto superior direito da janela de teste.
Se você clicar no botão de erro, ele exibirá uma mensagem de erro que pode ajudar na resolução do problema.
Para rastrear a raiz do problema, execute o Visual Studio no modo de log. Em vs 2017, execute o comando:
Execute o teste.
Revise o arquivo de log test_log.txt e procure por 'error' no arquivo.
O arquivo de log é uma grande ajuda para encontrar o erro que você pode resolver ou pode enviar o problema com o arquivo de log para a equipe de suporte técnico do Resharper .
fonte
Eu também corrigi esse problema. No entanto, nenhuma das soluções neste segmento funcionou. Aqui está o que eu fiz ...
Como o R # não estava fornecendo nenhum detalhe sobre por que as coisas estavam falhando, decidi experimentar o executor de teste integrado do VS2013. Ele teve exatamente o mesmo comportamento em que nenhum dos testes foi executado. No entanto, olhando na janela Saída, finalmente recebi uma mensagem de erro:
Isso me levou a outro segmento no SO com uma solução. Acredite, eu nunca teria adivinhado qual era o problema.
Recentemente, fiz algumas alterações no arquivo AssemblyInfo.cs ao criar um pacote NuGet. Uma das alterações, incluindo a especificação de um valor de cultura de montagem de "en".
Eu mudei isso:
para isso:
Foi isso! Foi o que inexplicavelmente interrompeu meus testes de unidade. Ainda não entendo o porquê. Mas pelo menos as coisas estão funcionando novamente. Depois de reverter essa alteração (ou seja, definir a cultura de volta para ""), meus testes começaram a ser executados novamente.
Espero que ajude alguém lá fora.
fonte
No meu caso, os
[Test]
métodos eram justosprivate
. Vergonhafonte
Meu problema era que eu havia instalado apenas o NUnit com nuget. Eu não tinha instalado o NUnit3TestAdapter, o que também era necessário.
fonte
No meu caso, foi um erro que cometi ao copiar a string de conexão no app.config .. Eu a coloquei dentro da tag configSections!
Demorei um pouco para perceber que ... graças ao VS intellisense ... ou foi mais uma vez?
fonte
Eu tive um problema semelhante. VS 2010, c # CLR 2 Nunit 2.5.7, basta criar> solução limpa do VS ajudou a resolver esse problema
fonte
No meu caso, criei um método de teste assíncrono que retornou
void
. Retornar emTask
vez devoid
resolver o problema.fonte
Você adicionou alguma dependência de DLL recentemente? ... Como eu
Acabei de encontrar o mesmo problema e foi muito exasperante não ter nenhuma pista na janela de resultados do teste ou em qualquer outro local prático.
A causa foi extremamente estúpida: acabei de adicionar o dia anterior à dependência a uma DLL externa adicional em um subprojeto, e o projeto principal App de fato foi criado e executado corretamente após a alteração. Mas meus testes de unidade estão em um projeto irmão do aplicativo principal e, portanto, também dependiam desse subprojeto alterado, onde a DLL foi invocada ... mas o local de tempo de execução do projeto de teste não é o do aplicativo principal! A alteração da compilação para fazer a cópia da DLL ausente no diretório de tempo de execução de teste corrigiu o problema.
fonte
Estou usando o VS2013, ReSharper 9.1 com extensão MSpec do ReSharper e Moq. Eu experimentei o mesmo erro "inconclusivo".
Acabou que o meu Mock's do Moq não foi inicializado, apenas declarado. Uns inicializaram todos os testes executados novamente.
fonte
No meu caso, recebi esse erro por causa do modo 'Release', onde a compilação do projeto UnitTests foi simplesmente desativada. Voltando ao modo 'Debug', foi corrigido.
É realmente surpreendente que o ReSharper não possa dizer nada, caso não encontre a biblioteca UnitTests. Sério, é uma pena;)
Espero que ajude alguém
fonte
No meu caso, todos testes em alguns projetos de teste em uma solução começaram a não ser executados depois que adicionei novos projetos. Usando o VS 2017 com ReSharper 2017.1.2 aqui.
Primeiro, verifique se você não está perdendo tempo, supondo que seu problema esteja relacionado ao ReSharper. É fácil assumir que há algo errado com o ReSharper se você usar seus recursos de teste de unidade, incluindo o Unit Test Explorer . Abra o Gerenciador de Testes do Visual Studio no menu Teste e tente Executar Tudo ". A vantagem adicional de fazer isso é que a janela de saída mostrará uma mensagem de erro que pode indicar a direção certa. Se você perceber que o mesmo conjunto de teste não são executados, é seguro assumir que o problema está no Visual Studio e não no ReSharper.
Acabei excluindo e adicionando novamente uma da plataforma de solução ativa , Any CPU , no Configuration Manager . Ao fazer isso, depois de salvar minhas alterações e reabrir a solução, todos os testes começaram a ser executados novamente.
Acredito que houve uma entrada de configuração inesperada no arquivo de solução quando adicionei novos projetos e, ao recriar uma das plataformas, ela se corrigiu. Tentei diferenciar, mas era difícil dizer o que havia mudado para causar o problema.
fonte
Para aqueles que estão enfrentando esse problema no meu projeto de teste
.NET Core 2.0
noVisual Studio 2017 Community (v15.3 3)
. Eu também tive esse bug usandoJetBrains ReSharper Ultimate 2017.2 Build 109.0.20170824.131346
- existe um bug que eu publiquei.A JetBrains recomendou a criação de um novo projeto de teste do zero para reproduzi-lo. Quando fiz isso e os testes funcionaram bem, encontrei o motivo que causou o problema:
*.csproj
arquivo:Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}
"Quando fiz isso - os testes começaram a funcionar bem.
fonte
Estou usando o VS2010, NUnit 2.6.3 (embora o ReSharper internamente diga que está usando o 2.6.2?), O ReSharper 7.7.1 e o NCrunch 2.5.0.12 e estava executando a mesma coisa "... teste é inconclusivo ..." com o NUnit, mas o NCrunch disse que estava tudo bem. Durante a maior parte dos dias, o NUnit e o NCrunch estavam em sincronia concordando sobre quais testes eram felizes e quais precisavam de refatoração; então, aconteceu algo que eu ainda não entendi; passou), então decidiu que estavam todos trabalhando, e o NUnit começou a reclamar de todos os meus testes, exceto um com a mesma mensagem "..test é inconclusivo ...", que eu pude novamente passar para um passo mesmo que o NUnit continuasse para mostrar como "inconclusivo").
Tentei várias das sugestões acima sem sucesso e, finalmente, fechei o VS2010 e reabri a solução. Agora, todos os meus testes estão felizes novamente, e a NCrunch e a NUnit estão relatando os mesmos resultados novamente. Infelizmente, não tenho idéia do que mudou para fazer com que fiquem fora de sincronia, mas fechar e reabrir o VS2010 parece ter corrigido.
Talvez alguém se depare com isso e consiga usar essa solução simples (se bem que insatisfatória, pois você não sabe qual é a solução real).
fonte
Eu tive esse mesmo problema. O culpado era uma referência externa não compatível com as configurações de construção do meu projeto. Para resolver, cliquei com o botão direito do mouse em projeto-> propriedades-> construção-> destino da plataforma-> alterar de Qualquer CPU para x86.
O particular * .dll com o qual eu estava trabalhando era System.Data.SQLite. Esse * .dll específico é codificado permanentemente para operação em 32 bits. A configuração "Qualquer CPU" tentou carregá-lo como 64 bits.
fonte
Minha solução:
O NUnit 3.2.0 tem alguns problemas com o Resharper - faça o downgrade para 2.6.4:
fonte
No meu caso, meu método de teste era privado, mudei para público e funcionou.
fonte
Causada pelo arquivo App.Config ausente (não corrompido). A adição de um novo (Adicionar -> Novo Item ... -> Arquivo de Configuração do Aplicativo) o corrigiu.
fonte
Eu estava com o mesmo problema: estava relacionado à versão de compatibilidade entre o NUnit 3.5 e o Resharper 9.2, uma vez que foi resolvido com o downgrade do NUnit 3.5 para o 2.6.4. Funcionou para mim. boa sorte.
fonte
Se você estiver usando
xUnit
, resolvi o problema ao instalar oxunit.running.visualstudio
pacote. (atualmente usandoxUnit 2.3.1
eVS17 Enterprise 15.3.5
)fonte
Estou com o mesmo problema para executar qualquer teste usando a estrutura NUnit. "Inconclusivo: teste não executado" Visual Studio 2017 15.5.6
ReSharper Ultimate 2017.3.3 Build 111.0.20180302.65130
RESOLVIDO Adicionando dependência de projeto ao Microsoft.NET.Test.Sdk
fonte
Para quem está com pressa de executar o teste, tive que usar o VS 2017 test explorer para executar testes;
fonte
Este erro ocorreu no Visual Studio 2017 e na nova versão 2018.2.3, mas a correção se aplica às versões do Visual Studio 2019 para.
A correção, para que os testes funcionassem no Resharper, era simplesmente atualizar para a versão mais recente do Resharper (2019.2.1) no momento da redação.
fonte
Eu tive exatamente o mesmo problema e nada ajudou.
eventualmente, vi que havia uma incompatibilidade nos meus namespaces do projeto de unidade e do projeto de teste de unidade.
O espaço para nome do meu projeto de unidade é unit.project e o projeto de teste foi nomeado unit.project.tests, mas o espaço para nome padrão do teste era o mesmo que a unidade, ambos eram unit.project.
Depois de atualizar os namespaces para serem diferentes (um namespace para cada projeto), tudo funcionou!
fonte