MISE À JOUR: Ajout d'un 2019; le mécanisme d'intégration Discovery / Runner est le même que pour 2017 et 2015, donc les éléments clés qui peuvent mal tourner sont les mêmes.
J'ai lu Pourquoi le coureur de xUnit ne trouve pas mes tests, ce qui explique les raisons pour lesquelles xUnit ne pourrait jamais trouver vos tests mais mon problème est différent - je suis convaincu qu'il n'y a rien de subtil dans mes tests; (ils ont travaillé dans d'autres environnements, cela semble être juste ma machine) - le Visual Studio Test Runner dans Visual Studio 2015 [Community Edition] ne montre tout simplement aucun de mes tests. Je ne fais rien d'excitant à distance; les tests ciblent xUnit.net v2 sur le bureau.
J'ai regardé dans la fenêtre de sortie et je ne vois rien du tout sous Test dans la sortie Afficher à partir des onglets.
la source
Réponses:
Éliminez les exceptions de découverte de vos demandes; allez dans la fenêtre de sortie (Ctrl-Alt-O), puis basculez la sortie du spectacle de la liste déroulante (Shift-Alt-S) vers Tests et assurez-vous qu'il n'y a pas d'exceptions de découverte
Test | Paramètres de test | L'architecture de processeur par défaut peut vous aider si vos tests sont spécifiques à x86 / x64 et que la découverte déclenche des exceptions liées à la bittedness, c'est-à-dire pas AnyCpu
Comme suggéré dans cette réponse (votez si la technique vous aide), exécuter le programme d'exécution de la console de bureau ( instructions ) peut être une bonne vérification croisée pour éliminer d'autres possibilités, par exemple des fichiers de configuration mutilés: -
REMARQUE Le
xunit.runner.console
package est obsolète - lorsque vous faites fonctionner des éléments dans VS, vous pourrez également lesdotnet test
exécuter dans des contextes CIAllez lire la documentation - elle est complète, à jour, comprend des informations de dépannage et prend des PR: -
Les étapes suivantes ont fonctionné pour moi:
(Seulement si vous pensez qu'il y a un grave désordre sur votre machine - en général, le cas le plus courant est que l'intégration de Visual Studio n'est tout simplement pas encore installée)
Faites ce
DEL %TEMP%\VisualStudioTestExplorerExtensions
qui est conseillé: -PS> del $env:TEMP\VisualStudioTestExplorerExtensions
Installez le package NuGet
xunit.runner.visualstudio
dans tous les projets de testPaquet:
Vous devez vous retrouver avec les éléments suivants dans votre
paket.dependencies
:nuget xunit.runner.visualstudio version_in_path: true
Notez que le
version_in_path: true
bit est importantNuget: accédez à la console du gestionnaire de packages (Alt-T, N, O) et
Reconstruisez pour vous assurer que
xunit.runner
se termine dans le répertoire de sortieFermer l'Explorateur de tests <- c'était le peu manquant pour moi
Rouvrir l'Explorateur de tests (Alt-S, W, T)
Exécuter tous les tests (Ctrl R, A)
la source
%TEMP%\VisualStudioTestExplorerExtensions
et le redémarrage de VS ont finalement fonctionné!J'ai dû changer les paramètres de test après avoir changé le processeur des projets de test en x64. Puis les tests ont été détectés à nouveau.
la source
Aucune des solutions ci-dessus n'a fonctionné pour moi (dotnetcore 1.1, VS2017). Voici ce qui l'a corrigé:
Microsoft.TestPlatform.TestHost
Microsoft.NET.Test.Sdk
Ceux-ci s'ajoutent à ces packages que j'ai installés auparavant:
la source
TestPlatform.TestHost
n'est nécessaire que lors de la migration de VS 2017 vers VS 2019.Installer le
xunit.runner.visualstudio
package pour le projet de testla source
Suivez ces étapes:
MsTest.TestAdapter
etMsTest.TestFramework
dll's
denugget package manager
.la source
%TEMP%\VisualStudioTestExplorerExtensions
et parfois je devais exécuter les tests depuis la console.J'ai eu du mal avec cela tout l'après-midi en travaillant avec un projet ASP Core et xUnit 2.2.0. La solution pour moi était d'ajouter une référence à
Microsoft.DotNet.InternalAbstractions
J'ai découvert cela en essayant d'exécuter le projet de test manuellement avec
dotnet test
lequel a échoué mais signalé qu'ilInternalAbstractions
manquait. Je n'ai pas vu cette erreur dans la fenêtre de sortie du test lorsque la détection automatique a échoué. La seule information que j'ai vue dans la fenêtre de découverte était un code de retour, qui ne signifiait rien pour moi à l'époque, mais avec le recul, il indiquait probablement une erreur.la source
Cela m'est arrivé à plusieurs reprises - lorsque je nettoie le projet et le reconstruit, cela a tendance à aller bien.
la source
Assurez-vous que votre classe de test est publique .
la source
La raison dans mon cas était que la version cible n'était pas la même entre le débogueur de projet et le testeur. Pour unifier ces éléments:
Une fois qu'ils sont identiques, reconstruisez votre solution, puis les méthodes de test apparaîtront pour vous.
la source
Après avoir passé 2 jours ... rien de ce qui précède n'a fonctionné pour moi. La seule "solution" était: Allez dans les propriétés du projet -> onglet Build. Cliquez ensuite sur le bouton Avancé dans le coin inférieur droit du volet. Modifiez «Informations de débogage:» sur «complet» et cliquez sur OK.
Voici les captures d'écran:
la source
J'utilise xUnit 2.2.0.
Mon problème était que ma solution n'était pas en mesure de trouver certaines dll et
app.config
essayait de les résoudre. L'erreur n'apparaissait pas dans la fenêtre de sortie de test dans Visual Studio.J'ai pu identifier l'erreur lors de l'installation
xunit.runner.console
et essayé d'exécuter les tests via la ligne de commande.Comment exécuter des tests xunit dans la CLI .
la source
Je peux fournir une solution pour un cas de pointe que j'ai rencontré il y a quelques jours. Ce ne sera pas la solution qui conviendra à tous les scénarios décrits ci-dessus, cependant, pour le cas de pointe, je l'ai fait réparer.
J'ai eu le même problème avec le plus récent VS 2017 (version 15.5.7) et XUnit 2.3.1. Le package xunit.runner.visualstudio a été installé, cependant, les tests ne sont pas apparus dans l'explorateur de test intégré de VisualStudio.
Je travaillais sur un projet hérité qui ciblait .NET Framework 4.5. Cependant, à partir de la version 2.2. XUnit ne prend pas en charge les frameworks .NET inférieurs à 4.5.2 (voir Notes de publication - XUnit 2.2: 19 février 2017
Changer le framework cible du projet de test vers une version> = 4.5.2 a fonctionné pour moi. Vous n'êtes pas obligé de modifier la version du projet que vous testez, il s'agit simplement du projet de test lui-même.
la source
J'ai eu le même problème avec Visual Studio 2019. Je viens d'installer les packages NuGet suivants et le problème a été résolu.
1). xUnit
2). xunit.runner.visualstudio
3). Microsoft.TestPlatform.TestHost
4). Microsoft.NET.Test.Sdk
la source
Cela peut également être dû au fait que la case à cocher de génération n'est pas cochée pour le projet de plate-forme actuel dans la configuration de génération. Cliquez sur Construire | Gestionnaire de configuration, puis assurez-vous que les projets de test ont une coche dans la colonne de construction de la plate-forme que vous utilisez (par exemple 'x86').
C'était définitivement la solution qui fonctionnait pour moi.
la source
Assurez-vous que vous n'avez pas écrit vos tests unitaires dans une bibliothèque de classes .NET Standard 2.0. L'exécuteur visualstudio ne prend pas en charge l'exécution de tests dans les bibliothèques de classes netstandard2.0 au moment de la rédaction de cet article.
Vérifiez ici la matrice de compatibilité de Test Runner:
https://xunit.github.io/#runners
la source
Ran dans un problème similaire avec VS ne découvrant pas les méthodes de test. Dans mon cas, j'avais le mot-clé static avec la méthode, que j'ai supprimé et cela a fonctionné.
la source
faites le moi savoir, merci
la source
Dans mon cas, j'avais 2 projets de test différents dans la solution. Les tests du projet 1 ont pu être trouvés, mais pas les tests du projet 2. J'ai trouvé que le déchargement du projet de test 1, puis la fermeture de VS> la suppression de mes fichiers temporaires> la ré-ouverture de la solution> la reconstruction, permettaient à VS de découvrir mes tests du projet 2.
Je suppose que quelque chose doit être en conflit entre les deux projets de test et que c'était le moyen le plus rapide de me mettre en marche en quelques minutes. Les problèmes peuvent être résolus plus tard :).
la source
Je souffrais de ce problème depuis longtemps.
J'ai eu environ 100 projets de version différente ont été déployés dans différents serveurs.
La mise à jour de xunit de 2.2.0 vers 2.3.1 n'était pas une solution car la compilation échouait dans 2.3.1.
Ensuite, je viens de mettre à jour xunit.runner.visualstudio vers 2.3.1 et tout a commencé à fonctionner correctement . J'ai utilisé cette commande dans ma console de gestionnaire de packages pour mettre à jour mon package xunit.runner.visualstudio
la source
Le coupable le plus courant pour moi a été Visual Studio essayant d'exécuter les tests en utilisant une architecture différente de celle de la bibliothèque qu'il teste. Malheureusement, il semble que cela puisse mal tourner à plusieurs endroits.
Dans VS 2017, essayez de créer un fichier Run Settings, par exemple
Default.runsettings
dans votre projet de test. Si votre bibliothèque principale est x64, le contenu doit être:Ensuite, choisissez ce fichier dans Test -> Paramètres de test -> Sélectionnez le fichier de paramètres de test.
Ensuite, sous Test -> Paramètres de test, Architecture de processeur par défaut, choisissez à nouveau l'architecture correcte.
Assurez-vous de nettoyer et de construire toute la solution. Vous devrez peut-être fermer et rouvrir la fenêtre de l'Explorateur de tests. Recherchez toute erreur supplémentaire dans la fenêtre Sortie -> Test, pour plus d'indices sur les types d'architecture incorrects.
Pour info, des entrées supplémentaires de paramètres de test peuvent être trouvées ici .
la source
Il y a une autre raison qui peut empêcher l' Explorateur de tests d'afficher des tests, et cela a à voir avec le nouveau
.pdb
format de fichier portable introduit avec Visual Studio 2017 / pour .NET Core qui peut casser certains outils VS. (Contexte: voir le rapport de bogue "Mono.Cecil provoque une exception OutOfMemoryException avec les nouveaux PDB .csproj" .)Vos tests ne sont-ils pas trouvés en raison du nouveau format portable
.pdb
(symboles de débogage)?Si vous voyez une sortie comme celle-ci (peut-être répétée une fois pour chacun de vos tests), alors vous avez le problème décrit dans cette réponse:
Si oui, procédez comme suit pour résoudre le problème:
none
,pdb-only
oufull
, mais pasportable
. C'est ce dernier paramètre qui fait que les tests ne sont pas trouvés..pdb
fichiers avant la reconstruction. Maintenant, vos tests devraient être de retour.la source
Cela m'est arrivé lorsque j'ai fait mes premières tentatives de marche avec IntelliTest dans VS 2017.
Parfois, lorsque le projet de test est créé automatiquement par IntelliTest, la référence d'assembly à
Microsoft.ExtendedReflection
( ... \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ Extensions \ Microsoft \ Pex \ Microsoft.ExtendedReflection. dll ) est manquant. Une fois ajoutés, les tests générés apparaîtront dans l'explorateur de tests après la recompilation.la source
Avertissement: il ne s'agit pas de xunit avec Visual Studio 2015, mais de Visual Studio 2017 avec une application de test unitaire UWP (MSTest). Je suis arrivé à ce fil en cherchant la même chose alors peut-être que quelqu'un d'autre fera de même :)
La solution pour moi était de mettre à jour les packages nuget pour MSTest.TestAdapter et MSTest.TestFramework. Il semble que lorsque vous créez une application de test unitaire pour UWP, vous n'obtenez pas automatiquement les dernières versions.
la source
Mon problème a été résolu en installant le nuget xunit.runner.visualstudio
la source
Dans mon cas, j'ai plusieurs projets de test dans la même solution et un seul des projets n'affichait pas le "Test Explorer"
Je suis allé au "Gérer le package Nuget pour la solution" en cliquant avec le bouton droit sur la solution.
J'ai remarqué que sous l'onglet "Consolider", il y avait des packages de nuget "Test" qui n'étaient pas synchronisés entre les projets. J'ai cliqué sur "Installer" et mes tests manquants sont apparus.
la source
J'ai essayé la plupart des suggestions ci-dessus et rien n'a fonctionné. Dans mon cas, je fais partie d'une équipe et des tests apparaissaient pour d'autres développeurs pour la même solution. Donc, j'ai essayé de supprimer simplement mon dossier .vs, mais pas de chance non plus.
J'ai fini par supprimer entièrement mon dossier local et re-cloner le dépôt. Cela a résolu le problème pour moi.
la source
Voici la solution qui a fonctionné pour nous. Pas le meilleur mais peut-être que l'on peut en bénéficier.
Contexte:
Lors de la construction, nous verrions ce message:
Solution (temporaire):
Maintenant, les tests sont affichés.
la source
xUnit v2 tests
le titre.Vérifiez également si un fichier app.config complètement vide (complètement vide sans aucun balisage) se trouve dans le projet de test. C'était le coupable dans mon cas.
la source
Dans mon cas, j'ai créé une nouvelle "Configuration de la solution" comme indiqué dans l'image. Ainsi, lorsque je sélectionne mon personnalisé comme "Prod", il ne reconnaît pas TestMehods pour une raison quelconque. Revenir à "Debug" résout le problème
la source
Je ne sais pas si certains d'entre vous utilisent également JustMock, mais j'ai dû désactiver le profileur dans VS 2017 pour que la détection des tests fonctionne.
la source