Aucun test trouvé. Assurez-vous que les découvreurs et exécuteurs de test installés, les paramètres de version de la plate-forme et du framework sont appropriés et réessayez

96

Je suis en train de mettre à niveau notre solution existante vers .Net 4.6.1 et je n'ai pas pu faire exécuter nos tests unitaires pendant la construction d'un serveur. Localement, ils fonctionnent comme prévu et le retour de la version du framework vers .Net 4.5.1 les fait fonctionner à nouveau sur le serveur.

Je reçois l'erreur suivante:

Aucun test trouvé. Assurez-vous que les découvreurs et exécuteurs de test installés, les paramètres de version de la plate-forme et du framework sont appropriés et réessayez.

J'ai reproduit le problème dans une configuration plus simple:

  • Solution avec un seul projet de test unitaire C # avec deux tests (un échec, un réussissant).
  • Définition de build XAML à l'aide du modèle par défaut (TfvcTemplate.12.xaml)
  • TFS 2015 Update 1 XAML build server avec Visual Studio Enterprise 2015 Update 1 installé (ont six serveurs similaires et produisent tous le même résultat)
Tore Østergaard
la source
Selon Brian Harry de Microsoft, il s'agit d'un bug sur lequel ils enquêtent actuellement. Il doit être corrigé dans la mise à jour 2 et une solution de contournement temporaire doit être publiée ultérieurement. Source: lien
Tore Østergaard
J'ai le même problème pour .Net 3.5 SP1 dans Visual Studio 2013 Update 5.
Andrey Bushman
@AndreyBushman: L'erreur pourrait également être en 2013U5 car elle a été publiée avec 2015RTM. Mais la solution de contournement devrait également fonctionner dans votre cas.
Tore Østergaard le
J'ai eu un problème similaire, la solution de contournement était simplement en vs, sous les paramètres de test, pour sélectionner le bon bit de processeur par défaut (32/64), et ne pas garder le moteur en marche. (vs 2017.x)
kfn

Réponses:

59

Vous pouvez essayer de changer votre architecture de processeur par défaut dans votre paramètre de test de X86 à X64. Dans mon cas, c'était le problème.

Cela se produit si la cible de plate-forme de votre projet en cours de test est définie sur x64.

Capture d'écran des paramètres de test

rubeonline
la source
Cela a résolu le problème pour moi. Dans mon cas, le projet testé et le projet de test ont été définis sur x86. Les tests ont pu être détectés mais n'ont pas pu être exécutés. Après l'avoir changé en N'importe quel processeur, des tests ont été exécutés.
rendez-vous
J'ai juste eu le même problème et cela l'a résolu. Je suis également assez suspect que cela ait pu avoir un mauvais effet de synergie sur mes principales références de projet, qui ont soudainement arrêté de charger une DLL particulière, mais n'ont pas déterminé de manière concluante cet effet secondaire désagréable.
Allen
44

Ma version ne trouvait pas non plus les tests. Ma configuration et ma solution pour trouver les tests sont les suivantes.

J'utilise VSTS (Visual Studio Team Services) et j'ai une build qui est configurée pour actualiser les packages NUGET sur chaque build. J'utilise NUnit et j'ai constaté que l'exécution de la commande NUGET suivante (à partir de la console du gestionnaire de packages dans Visual Studio) pour ajouter la bibliothèque NUnitTestAdapter à mon projet de test et la vérification dans packages.config ont fait exécuter les tests dans ma version VSTS.

Install-Package NUnitTestAdapter

Comme Maurice le mentionne dans le commentaire de cet article pour NUnit3, utilisez le package NUGET suivant (recherchez d'autres utils sur le lien. Ex: dotnet CLI et Paket CLI)

Install-Package NUnit3TestAdapter

J'espère que cela t'aides.

Nick Rubino
la source
10
J'utilise également actuellement VSTS. Comme conseillé, j'ai ajouté NUnit3TestAdapter (puisque j'utilise NUnit 3.8.1) et cette solution a résolu mon problème. Merci :-)
Maurice Klimek
1
Install-Package NUnit3TestAdapter a résolu mon problème :)
Bimal Das
26

Dans mon cas, je devais:

1) Convertir le projet de test en netcore 2.0 (était netstandard 2.0)

2) Ajouter un paquet nuget xunit.runner.visualstudio

Référence: http://www.neekgreen.com/2017/11/20/xunit-no-test-is-available/

woohoo
la source
2
le même problème était avec moi. J'utilise xunit avec .net core
Amna
Cela a également fonctionné pour moi dans Visual Studio 2017 avec xunit et .NET Core 2.1.
Thorkil Værge
3
dans mon cas, il y avait un projet .net 4.6.1 donc la seule chose qui manquait était le coureur xunit. Installé et travaillé.
Juan le
1
Identique à Juan. Seul le package runner manquait. L'exécution de cela dans le gestionnaire de packages pour le projet de test l'a résolu: install-package xunit.runner.visualstudio
Premil
11

J'ai eu cette erreur et j'ai pu la résoudre.

  1. J'utilise Visual Studio Professional 2017
  2. Dans VS, j'ai accédé à Outils -> Extensions et mises à jour
  3. En haut du menu, j'avais remarqué que mon adaptateur NUnit était désactivé
  4. J'ai cliqué sur le bouton [Activer]
  5. J'ai pu lancer des tests sans erreur.
Bois J
la source
Oui! Et n'oubliez pas de redémarrer Visual Studio. C'était nécessaire pour moi.
Michael Levy
"En haut du menu" qu'est-ce que cela signifie?
Sean Kendle
1
@SaiyajinGohan. Une fois l'étape 2 terminée, la fenêtre «Extensions et mises à jour» s'affiche. En haut de cette fenêtre, j'ai vu que l'adaptateur NUnit était désactivé. J'espère que cela clarifie ....
J Wood
Merci pour cela, je ne pouvais toujours pas faire fonctionner cela avec le projet sur lequel je travaillais. Heureusement, c'était un projet de test et le suivant a fonctionné. Encore un mystère pour savoir pourquoi.
Sean Kendle
10

J'utilise MSTest. Pour moi, c'était une version incorrecte et il manquait un autre package dépendant -

1) Mon dossier de package contient uniquement le package MSTest.TestFramework.1.2.1. Dans mon fichier de projet (.csproj), la référence dans le nom de la cible était le package MSTest.TestAdapter.1.2.0 qui n'était pas présent dans le dossier du package. Mon packages.config fait également référence à MSTest.TestFramework.1.2.0.

2) J'ai donc installé MSTest.TestAdapter.1.2.0 à partir du gestionnaire de packages nuget et aligné la version MSTest.TestFramework sur 1.2.0 dans le fichier de projet et de package. Enfin, j'ajoute Microsoft.VisualStudio.TestPlatform.TestFramework et Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions dans la référence.

Ensuite, tout allait bien. J'espère que cela aidera quelqu'un.

quasar
la source
Je suis tombé dessus avec .Net 4.6.1 VS2017. J'ai fini par revenir à la version 1.2.0 - assurez-vous de ne pas avoir deux versions différentes dans votre dossier packages ou dans le contrôle de code source.
Jeremy Thompson
2
Le mien a semblé trouver les tests, mais oui, l'absence de "MSTest.TestAdapter" était le vrai problème. Aucune erreur ni avertissement sympa (VS2017 15.8). Tout avait l'air bien sauf qu'aucun test n'a été trouvé, malgré leur apparition dans l'explorateur de tests ..... Donc, quand j'ai fait "installer-package MSTest.TestAdapter", soudain, mes tests se sont déroulés comme prévu. Merci MS - 3 heures perdues ...........
James Joyce
1
L'installation du MSTest.TestAdapter 1.4.0 l'a fait pour moi dans VS 2019. Je n'ai perdu que 30 minutes grâce à vous.
furman87
6

Ce problème réapparaît pour Visual Studio 2017. Très probablement un autre bug mais le même résultat.

Une solution de contournement qui semble fonctionner consiste à désinstaller le débogueur distant Microsoft Visual Studio 2017 de l'ordinateur concerné.

Csapi007
la source
5
  1. Installez la dernière version de Nunit et NUnitTestAdapter à partir du package NUGET.
  2. Allez dans -> Test -> Paramètres de test -> Architecture du processeur par défaut -> Passer à X64
  3. Construisez la solution.
  4. Cela résoudra le problème Run Test and Debugger dans les tests unitaires et cela commencera à fonctionner.
Karthikeyan Nandagopalan
la source
Cela a fonctionné pour moi après m'être cogné la tête dans tant de directions et de suggestions.
rajibdotnet le
4

J'ai rencontré le même problème dans VSTS avec .Net 4.6.2. Si vous voyez cela à partir de la sortie de votre console VSTS, la solution de contournement fournie par @Sushil fonctionne toujours dans VSTS et est nécessaire. Malheureusement, la tâche "Test Assemblies" fournie par Microsoft réussit, donc vous ne savez même pas vraiment qu'il y a un problème à moins que vous ne vérifiiez la sortie et ne trouviez aucun de vos tests réellement exécuté!

Correctif de test VSTS

raterus
la source
Mon problème concernait la mise à jour 1 de TFS 2015 (sur site) et il a été résolu avec la mise à jour 2. Je ne suis pas sûr si le même problème existe / existait avec VSTS.
Tore Østergaard
4

Si vous exécutez vos tests dans docker à l'aide de la construction à plusieurs étapes et que les tests ne sont pas trouvés. Assurez-vous de copier tous les fichiers non seulement les fichiers de projet comme ci-dessous la section 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
la source
Cela m'a vraiment mordu. Je pense que l'indice que cela se produit est qu'il TROUVE la DLL de test unitaire, mais il ne trouve aucun test dedans. J'ai également trouvé que mettre cela en ligne après vos instructions de copie vous permettra d'inspecter pour voir ce que WAS copié (ici / app / tests est votre répertoire cible sur l'image Docker): RUN file = "$ (ls -al / app / tests) "&& echo $ file (voir ce post pour plus d'informations sur echo )
David Yates
3

J'ai résolu ce problème dans le projet de test VS 2017 et 4.6.2 avec les étapes suivantes:

  1. Supprimer les références à Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll et aux extensions
  2. Installez le package nuget Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated
Ste Brown
la source
3

Assurez-vous que le nuget «Microsoft.NET.Test.Sdk» est installé.

Lordpansar
la source
2

Il s'agit d'un problème connu pour .Net 4.6 actuellement.

Impossible d'exécuter des tests unitaires .Net 4.6.x dans le cadre d'une build XAML TFS avec TFS 2015 UPdate1 Source: https://connect.microsoft.com/VisualStudio/feedback/details/2245723

Voici une question similaire pour votre référence: Impossible d'exécuter les tests unitaires .Net 4.6 du serveur de build XAML TFS 2015

PatrickLu-MSFT
la source
2
Salut Patrick. Les deux liens que vous fournissez sont des cas ouverts par moi, donc je ne leur ferais pas confiance comme référence ;-).
Tore Østergaard
2

Je fixe ce problème en réinstallant tous les tests liés paquets NuGet pour le projet: Xunit, Xunit.runner.vistualstudio,Microsoft.Net.Test.Sdk

n.shojaei
la source
1

J'obtenais un problème similaire et j'ai remarqué qu'un app.configfichier avait été ajouté à mon projet de test. La suppression de ce fichier de configuration l'a corrigé pour moi.

thatWiseGuy
la source
1

Je vais jeter ma solution sur le tas. Dans mon cas, j'ajoute quelques projets à une solution existante avec des projets de test pour eux. Nous utilisons MSTest. Un fichier UnitTest.testsettings précédent était activé sur la solution qui causait des problèmes de compatibilité.

Cliquer sur le fichier de paramètres a supprimé le contrôle et le test a réussi pour mes tests.

entrez la description de l'image ici

jwatts1980
la source
1

Trouvé un moyen! Probablement pas le plus orthodoxe, mais cela m'a aidé à la hâte:

  1. Mettez à jour les packages MSTest.TestAdapter et MSTest.TestAdapterFramework vers la version 1.4.0 à partir des outils> Gestionnaire de packages NuGet.
  2. Nettoyez la solution et relancez les tests.

Je ne pense pas qu'il y ait quelque chose de particulier avec la version, mais sa mise à jour nettoie certainement toute référence mauvaise dans la solution / projet.

dave_077
la source
0

C'est juste pour récapituler la solution proposée par @Sushil plus tôt.

Il s'agit d'un problème connu dans Team Foundation Server 2015 RTM + Update 1 et sera résolu dans la mise à jour 2, référence .

Il existe une solution de contournement décrite par @Sushil ici , qui comprend l'ajout d'un fichier .runsettings qui force le lanceur de test à un framework .Net plus ancien (veuillez noter que vous devez le spécifier via la boîte de dialogue "Ajouter / Modifier une exécution de test" en l'ajoutant directement dans l'éditeur de processus de construction sera ignoré).

Tore Østergaard
la source
0

En utilisant .Net Core avec un pipeline de build dans TFS 2017, mon étape de test Visual Studio passait sans exécuter de tests. J'ai dû modifier l'étape "Options d'exécution avancées" -> "Autres options de la console" pour inclure:

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

(Ce champ contient également /platform:x64)

marque
la source
0

Dans Visual Studio 2017, je désinstalle et réinstalle simplement NUnitTestAdapter ou installe un nouveau package comme le package NUnitTestAdapter.WithFramework et le problème a disparu.

Ali Yousefi
la source
0

J'ai eu cette erreur car ma classe de test unitaire n'était pas publique.

Ex:

class ClientTests

Erreur de sortie:

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

Correction:

public class ClientTests

Plage de Jared
la source
0

J'ai le même problème. J'utilise Visual Studio 2017 Community Edition.

entrez la description de l'image ici

J'ai utilisé ces étapes pour découvrir avec succès tous mes cas de test et l'exécuter avec succès:

  • Allez d'abord dans Extensions et mises à jour, installez l'adaptateur de test NUnit3. Si vous l'avez déjà, activez-le.

  • Redémarrez votre Visual Studio 2017, il vous demandera automatiquement d'
    installer votre extension, si une invite dit de terminer la tâche pour continuer l'
    installation, cliquez simplement sur «Fin de tâche».

  • Après cela, reconstruisez votre projet de test et tous les cas de test seront désormais identifiés et vous pouvez maintenant commencer à exécuter vos cas de test.

Willy David Jr
la source
0

Dans mon cas, la réinstallation de l'adaptateur Nunit3, la suppression des dossiers temporaires, la modification de l'architecture et rien n'a fonctionné. C'est à cause du démon Resharper a causé le problème.

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

Cela résout les problèmes.

Riyaz Hameed
la source
0

Cette erreur peut se produire pour les tests asynchrones si vous avez le mauvais type de retour. Le type de retour doit être Task et non void.

user3533716
la source
0

Après avoir ajouté TestAdapterPath dans le commandant, cela a fonctionné pour moi:

vstest.console.exe Xom.Gci.Lvf.FileParserInvoker.UnitTests.dll /TestAdapterPath:"C:\****\****\{SolutionFolder}"
dixiashi
la source
Tout d'abord, vous devez vous assurer que le scénario de test peut être exécuté dans VS IDE.
dixiashi
0

Dans mon cas, les tests ont été découverts mais l'exécution a abouti à "Test non disponible ... " et le (in) célèbre: "Assurez-vous que le découvreur de tests et les exécuteurs sont enregistrés et que les paramètres de version de la plate-forme et du framework sont appropriés et réessayez."

l'erreur était indépendante de Visual Studio (testé à partir des outils CLI dotnet et du test UNit presque nu) et c'était uniquement lors du ciblage de .NET 4.7.1. L'application dotnetcore fonctionne très bien.

l'exécution de tests avec l'interface de ligne de commande Nuint3 nunit3-console.exe Tests.csprojaffiche également l'erreur:

"Soit l'assemblage ne contient aucun test, soit le pilote de test approprié n'a pas été trouvé."

L'erreur était due au fait que l'adaptateur de test était introuvable sur un lecteur ou un partage réseau (mappé) et a été résolu en le copiant localement et en le réexécutant.

Falco Alexander
la source
0

si vous avez déjà installé un adaptateur de test dans le projet de test, essayez de le désinstaller du projet et de l'installer à nouveau dans le projet de test.

Ce correctif de base fonctionne pour moi.

Parth Darji
la source
0

Essayez de courir vstest.console.exeavec --diag:diag.txtet inspectez la sortie. Pour moi, c'était des échecs de chargement de DLL pour les adaptateurs de test de mon répertoire de travail:

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.

J'ai contourné ce problème en ajoutant <loadFromRemoteSources enabled="true"/>sous <runtime>dans vstest.console.exe.config

andrew.rockwell
la source
0

J'utilise MSTest.

J'ai installé à partir de Nuget la dernière version de MSTest.TestFramework et remplacé OOB Supprimer les références à Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Puis installé à partir de neget la dernière version de Microsoft.

Cela m'a permis d'exécuter le test avec une commande:

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

Mais j'ai eu la même erreur. La cause première de l'erreur est que je n'ai pas spécifié d'adaptateur de test qui analyse l'assemblage et trouve des tests.

Solution:

  1. Installez un package nuget "MSTest.TestAdapter"

  2. Spécifiez un adaptateur de test à la fin d'une commande:

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

MirrorBoy
la source
0

Pour ceux qui sont confrontés au problème similaire .Voici la solution, veuillez installer SpecFlowPlusRunner.

J'ai essayé d'autres solutions telles que la réinstallation, la suppression du cache, etc. Mais la solution est en fait différente, nous devons installer SpecRun.SpecFlow2.3.0 pour visualstudio 2017.Cela a résolu le problème.

J'espère que cela aide tout le monde.

Laxmi
la source
0

J'ai rencontré le même problème lorsque j'ai essayé nUnit dans VS 2017 et ce n'est pas un projet principal. L'installation a NUnit3TestAdapterrésolu le problème.

Surendra Rayapati
la source