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)
unit-testing
tfs
build
tfs-2015
Tore Østergaard
fonte
fonte
Respostas:
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
.fonte
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.
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)
Espero que isto ajude.
fonte
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/
fonte
Recebi este erro e consegui resolvê-lo.
fonte
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.
fonte
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.
fonte
fonte
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!
fonte
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.
fonte
Corrigi isso por problema no projeto de teste VS 2017 e 4.6.2 com as seguintes etapas:
fonte
Certifique-se de que o nuget "Microsoft.NET.Test.Sdk" esteja instalado.
fonte
Este é um problema conhecido do .Net 4.6 agora.
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
fonte
Eu fixo este problema reinstalando todos os testes relacionados com pacotes NuGet para o projeto:
Xunit
,Xunit.runner.vistualstudio
,Microsoft.Net.Test.Sdk
fonte
Eu estava tendo um problema semelhante e percebi que, de alguma forma, um
app.config
arquivo foi adicionado ao meu projeto de teste. Remover este arquivo de configuração corrigiu para mim.fonte
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.
fonte
Encontrou uma maneira! Provavelmente não o mais ortodoxo, mas ajudou-me rapidamente:
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.
fonte
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).
fonte
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:
(Esse campo também contém
/platform:x64
)fonte
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.
fonte
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
fonte
Estou tendo o mesmo problema. Estou usando o Visual Studio 2017 Community Edition.
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.
fonte
No meu caso Reinstalando Adaptador Nunit3, Excluindo Pastas Temporárias, Alterando Arquitetura e nada funcionou. É por causa do Daemon Resharper que causou o problema.
Isso resolve os problemas.
fonte
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.
fonte
Depois de adicionar o TestAdapterPath no comandante, funcionou para mim:
fonte
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.
fonte
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.
fonte
Tente executar
vstest.console.exe
com--diag:diag.txt
e 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.configfonte
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:
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:
Instale um pacote nuget "MSTest.TestAdapter"
Especifique um adaptador de teste no final de um comando:
/TestAdapterPath:".\packages\MSTest.TestAdapter.2.1.2\build_common "
fonte
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.
fonte
Enfrentei o problema semelhante quando tentei nUnit no VS 2017 e não é um projeto central. A instalação
NUnit3TestAdapter
corrigiu o problema.fonte