Pourquoi le coureur de Test Visual Studio 2015/2017 ne découvre pas mes tests xUnit v2

mise à jour: Ajout d'un 2017; VS2017 utilise le même mécanisme de découverte de Tests/Intégration runner que 2015, donc les choses clés qui peuvent mal tourner sont les mêmes.


j'ai lu pourquoi le coureur xUnit ne trouve pas mes tests, ce qui couvre les raisons xUnit serait jamais être en mesure de trouver vos tests mais mon problème est différent - je suis sûr qu'il n'y a rien de subtil en cours avec mes tests; (ils ont travaillé dans d'autres environnements, cela semble être juste ma machine) - le Visual Studio tester Runner dans Visual Studio 2015 [édition communautaire] n'est tout simplement pas montrer tout de mes tests. Je ne fais rien de très excitant; la cible des tests 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 le afficher sortie de onglets.

130
demandé sur Community 2016-01-30 18:55:13

30 réponses

  1. éliminez les exceptions à la découverte de vos demandes de renseignements; allez à la fenêtre de sortie (Ctrl-Alt-O), puis passez la afficher la sortie de dropdown (Shift-Alt-S) à Tests et assurez-vous qu'il n'y a pas d'exceptions à la découverte

  2. comme suggéré dans cette réponse(upvote it si la technique aide) course à pied de la console de bureau runner ( instructions ) peut être une bonne vérification croisée pour éliminer d'autres possibilités, par exemple les fichiers de configuration mutilés: -

    packages\xunit.runner.console.2.2.0\tools\xunit.console <tests.dll>

  3. test|test settings|Default processor architecture peut vous aider si vos tests sont spécifiques à x86/x64 et que la découverte déclenche des exceptions liées à la bitdness, c'est-à-dire pas AnyCpu


allez lire la documentation - elle est complète , à jour, comprend des informations de dépannage et prend PRs: -

NOTE IMPORTANTE: Si vous avez déjà installé le xUnit.net Visual Studio Runner VSIX (Extension), vous devez d'abord le désinstaller. Le Visual Studio runner n'est distribué que via NuGet. Pour l'enlever, aller outils > les Extensions et les Mises à jour . Faites défiler vers le bas de la liste, et si xUnit.net est installé, désinstallez-le. Cela vous forcera à redémarrer Visual Studio.

si vous avez des problèmes pour découvrir ou exécuter des tests, vous pouvez être victime d'une cache runner corrompue à L'intérieur de Visual Studio. Pour effacer ce cache, fermez toutes les instances de Visual Studio, puis supprimez le dossier %TEMP%\VisualStudioTestExplorerExtensions . Assurez-vous également que votre projet est seulement lié à un seul version du paquet NuGet Visual Studio runner ( xunit.runner.visualstudio ).

les étapes suivantes ont fonctionné pour moi:

  1. (seulement si vous soupçonnez qu'il y a un sérieux gâchis sur votre machine - en général, le cas le plus courant est que l'intégration visual studio n'est tout simplement pas encore installé)

    Faire de la DEL %TEMP%\VisualStudioTestExplorerExtensions , comme le conseille :-

    PS> del $env:TEMP\VisualStudioTestExplorerExtensions

  2. installer le paquet NuGet xunit.runner.visualstudio dans tous les projets d'essai

    • Paket:

      .paket\paket add nuget xunit.runner.visualstudio -i
      

      vous devez Vous retrouver avec les éléments suivants dans votre paket.dependencies :

      nuget xunit.runner.visualstudio version_in_path: true

      Note le version_in_path: true bit est important

    • Nuget: Allez à Gestionnaire de paquets de la Console (Alt-T,N,O) et

      Install-Package xunit.runner.visualstudio)
      

    Reconstruction assurez-vous que xunit.runner se termine dans la sortie dir

  3. Fermer l'Explorateur de tests <- c'était le manque peu pour moi

  4. Re-ouvrir l'Explorateur de tests (Alt-S,W,T)

  5. exécuter tous les essais (Ctrl R, a)

164
répondu Ruben Bartelink 2017-09-07 07:09:58

aucune des solutions ci-dessus ne fonctionnait pour moi (dotnetcore 1.1, VS2017). Voici ce qui l'a réparé:

  1. Ajouter Un Package NuGet "De Microsoft.TestPlatform.TestHost "
  2. Ajouter NuGet Package " Microsoft.NET.Test.151940920"

ce sont en plus de ces paquets que j'ai installés avant:

  • xunit (2.3.0-beta1-build3642)
  • xunit.coureur.visualstudio (2.3.0-beta1-build1309)
21
répondu Arman 2017-04-18 19:48:02

j'ai dû changer les paramètres de Test Après avoir changé le CPU des projets de test En x64. Puis les tests ont été repérés.

Architecture

19
répondu Max 2017-06-13 11:40:48

suivez ces étapes:

  1. mise à Jour de votre MsTest.TestAdapter et MsTest.TestFramework dll's à partir de nugget package manager .
  2. nettoyer votre solution
  3. Construisez votre solution.
13
répondu Venkat Ramanan 2017-10-16 09:35:13

Installer xunit.runner.visualstudio package pour le projet de test

13
répondu Chris Aelbrecht 2017-10-31 13:13:38

j'ai eu du mal avec ça tout l'après-midi tout en travaillant avec un projet de base ASP et xUnit 2.2.0. La solution pour moi était d'ajouter une référence à Microsoft.DotNet.InternalAbstractions

j'ai trouvé cela en essayant d'exécuter le projet d'essai manuellement avec dotnet test qui a échoué mais a rapporté que InternalAbstractions était manquant. Je n'ai pas vu cette erreur dans la fenêtre de sortie de test lorsque la découverte automatique a échoué. La seule info que j'ai vu dans la fenêtre de découverte était un code de retour, ça ne signifiait rien pour moi à l'époque, mais avec du recul, c'était probablement une erreur.

10
répondu Tom Makin 2016-11-02 11:08:17

il m'est arrivé à quelques reprises - quand je nettoie le projet et le construire à nouveau, il a tendance à être bien.

6
répondu Liam 2017-03-21 16:13:58

après avoir passé 2 jours... rien de ce qui précède n'a fonctionné pour moi. La seule "solution" était: Aller à Propriétés du projet -> onglet Construire. Ensuite, cliquez sur le bouton Avancé dans le coin inférieur droit de la vitre. Changez "Debug Info: "en" full " et cliquez sur OK.

Voici les captures d'écran: enter image description here

enter image description here enter image description here

5
répondu curiousBoy 2017-06-18 20:33:05

j'utilise xUnit 2.2.0.

mon problème était ma solution n'a pas été en mesure de trouver certains dlls et app.config essayait de les résoudre. L'erreur ne s'est pas manifestée dans la fenêtre de sortie de test de Visual Studio.

j'ai pu identifier l'erreur lorsque j'ai installé xunit.runner.console et essayé d'exécuter les tests en ligne de commande.

Comment faire pour exécuter xunit tests en CLI .

4
répondu SohamC 2017-09-07 05:18:41

la raison dans mon cas était la construction cible n'était pas la même entre le débogueur de projet et le coureur de test. Pour unifier ces éléments:

  1. Test>Paramètres De Test>Architecture De Processeur Par Défaut. sélectionnez ensuite X64 ou X86.
  2. Projet>(votre projet)Propriétés>Build(onglet)>plate-forme cible.

après qu'ils sont identiques, reconstruisez votre solution puis les méthodes d'essai apparaîtront pour vous.

4
répondu Jawad Sabir 2018-02-25 08:04:54

cela peut aussi être dû au fait que la case de contrôle de construction n'est pas cochée pour le projet de plate-forme en cours dans la configuration de construction. Cliquez sur Build / Configuration manager, puis assurez-vous que les projets de test ont un TIC dans la colonne build pour la plate-forme que vous utilisez (par exemple 'x86').

C'était certainement la solution qui a fonctionné pour moi.

3
répondu cd747 2017-07-14 09:35:00

assurez-vous que vous n'avez pas écrit les tests de votre unité dans une bibliothèque de classe .NET Standard 2.0. Le VisualStudio runner ne supporte pas les tests de course dans netstandard2.0 bibliothèques de classe au moment de l'écriture.

Cochez ici pour la matrice de compatibilité de L'éprouvette:

https://xunit.github.io/#runners

3
répondu vullnetyy 2017-09-05 09:29:35

je peux fournir une solution pour un cas de bord que j'ai rencontré il y a quelques jours. Il ne va pas être la solution qui s'adapte à tous les scénarios décrits ci-dessus, cependant, pour le cas limite je l'avais fixé.

j'ai eu le même problème avec les plus récentes VS 2017 (version 15.5.7) et XUnit 2.3.1. Le xunit.coureur.le paquet visualstudio a été installé, mais les tests ne sont pas apparus dans L'Explorateur de test intégré de VisualStudio.

je travaillais sur un héritage projet visant le cadre .NET 4.5. Cependant, en commençant par la version 2.2. XUnit ne supporte pas .NET frameworks lower thant 4.5.2 (voir Release Notes - XUnit 2.2: February 19, 2017

le test cible du projet de cadre à une version >= 4.5.2 a fonctionné pour moi. Vous n'avez pas à changer la version du projet que vous testez, c'est juste à propos du projet de test lui-même.

3
répondu baumgarb 2018-03-05 12:16:36

dans mon cas, j'avais 2 projets de test différents dans la solution. Les essais du projet 1 ont pu être trouvés, mais pas ceux du projet 2. J'ai trouvé que D'abord décharger le projet test 1, puis fermer VS > nettoyer mes fichiers temporaires > solution de réouverture > reconstruire, a permis à 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 ce fut le moyen le plus rapide pour me mettre en place en quelques minutes. Les plis peuvent être a travaillé plus tard :).

2
répondu Zach J. 2017-08-24 17:50:23

a rencontré un problème similaire avec VS ne pas découvrir les méthodes d'essai. Dans mon cas, j'ai eu le mot-clé statique avec la méthode, que j'ai enlevé et il a fonctionné.

[TestMethod]

Before: public static void Test1()

After: public void Test1()
2
répondu live-love 2017-10-01 23:45:58

je souffrais de ce problème depuis longtemps.

  • j'ai eu environ 100 Projets.

  • mise à Jour xunit de 2.2.0 à l'article 2.3.1 n'était pas une solution parce que construire n'était pas au point 2.3.1.

puis je viens de mettre à jour xunit.coureur.visualstudio à 2.3.1 et tout a commencé à bien fonctionner. J'ai utilisé cette commande dans ma console de gestionnaire de paquets pour mettre à jour mon xunit.coureur.paquet visualstudio

Get-Project ComapanyName.ProjectName.*.Tests | Install-Package xunit.runner.visualstudio -Version 2.3.1
2
répondu Nafeez Abrar 2018-02-20 09:34:00

le coupable le plus commun pour moi a été Visual Studio essayant d'exécuter les tests en utilisant une architecture différente que la bibliothèque qu'il teste. Malheureusement, il y a plusieurs endroits où cela peut mal se passer.

dans VS 2017, essayez de créer un fichier de paramètres D'exécution, par exemple Default.runsettings dans votre projet de test. Si votre lib principale est x64, le contenu doit être:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <RunConfiguration>
    <TargetPlatform>x64</TargetPlatform>
  </RunConfiguration>
</RunSettings>

ensuite, choisissez ce fichier dans Test - > paramètres de Test - > sélectionner Test Le Fichier De Paramètres.

ensuite, sous test -> paramètres de Test, Architecture de processeur par défaut, choisissez à nouveau la bonne architecture.

assurez-vous de nettoyer et de construire la solution entière. Vous devrez peut-être fermer et rouvrir la fenêtre de L'Explorateur de Test. Recherchez toute erreur supplémentaire dans la fenêtre de sortie -> Test, pour plus d'indices sur les types d'architecture incorrects.

FYI les paramètres de Test supplémentaires entrées peuvent être trouvées ici .

1
répondu Toby J 2017-04-03 15:45:22

Il ya une autre raison qui peut causer Test Explorer ne montrant pas de tests, et il a à voir avec le nouveau format de fichier portable .pdb introduit avec Visual Studio 2017 / for.net Core qui peut casser certains VS tooling. (Contexte: Voir le rapport de bug "Mono.Cecil provoque une Surdemoryexception avec new .csproj PDBs " .)

sont vos tests pas trouvé en raison de la nouvelle portable .pdb (debug symboles) format?

  • ouvrez la fenêtre sortie .
  • Changement de sélection déroulante pour Afficher la sortie de à Tests .
  • si vous voyez une sortie comme la suivante (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:

    Exception System.OutOfMemoryException, Exception converting <SignatureOfYourTestMethod>
    Array dimensions exceeded supported range.
    

Si oui, le faire pour résoudre le problème:

  • ouvrez votre projet d'essai propriétés (sélectionnez le projet d'essai dans Solution Explorer et appuyez sur Alt + entrez ).
  • passer à la Construire onglet.
  • cliquez sur le avancé... bouton (situé à la très fin de cette page de l'onglet).
  • dans la liste déroulante étiquetée informations de débogage , choisissez none , pdb-only , ou full , mais pas portable . C'est ce dernier réglage qui fait que les tests ne sont pas trouvés.
  • , Cliquez sur OK et pour nettoyer et reconstruire votre projet. Si vous voulez être plus sûr, allez dans le répertoire de sortie de votre projet de test et nettoyez tout .pdb dossiers avant la reconstruction. Vos tests devraient être de retour.
1
répondu stakx 2017-05-07 18:36:33

M'est arrivé quand j'ai pris mes premières tentatives de marche avec IntelliTest dans VS 2017.

parfois, lorsque le projet d'essai est auto-créé par IntelliTest, la référence d'assemblage de 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 test Après recompiler.

1
répondu Christian 2017-06-20 13:30:31

clause de non-responsabilité: il ne s'agit pas de xunit avec visual studio 2015, mais de Visual Studio 2017 avec UWP unit test application (MSTest). Je suis arrivé à ce fil de recherche la même chose donc peut-être que quelqu'un d'autre fera la même chose:)

la solution pour moi était de mettre à jour les paquets nuget pour MSTest.TestAdapter et MSTest.TestFramework. Il semble que lorsque vous créez une application de test unitaire pour UWP vous ne recevez pas automatiquement les dernières versions.

1
répondu Alex Albu 2017-06-20 14:22:29

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é à la" gestion du paquet Nuget pour Solution " en droit-cliquant sur la solution.

j'ai remarqué sous l'onglet" consolider "qu'il y avait des paquets nuget" Test " qui n'étaient pas synchronisés entre les projets. J'ai cliqué sur "Installer" et mes tests manquants sont apparus.

1
répondu CBBSpike 2017-11-30 03:54:21

vérifier également si une application complètement vide.le fichier de configuration (complètement vide avec absolument aucun markup) fait partie du projet de test. C'était le coupable dans mon cas.

0
répondu Gopal 2017-07-17 15:54:15

dans mon cas, j'ai créé une nouvelle" solution Configuration " comme indiqué sur l'image. Donc, quand je sélectionne mon personnalisé comme "Prod", il ne reconnaît pas les méthodes de test pour une raison quelconque. Revenir à "Debug" résout le problème

enter image description here

0
répondu batmaci 2017-07-20 16:09:15

Je ne sais pas si certains d'entre vous utilisent aussi JustMock, mais j'ai dû désactiver le profileur dans VS 2017 pour que la détection de test fonctionne.

0
répondu chrisdrobison 2017-07-20 21:49:14

mon problème a été résolu en installant le nuget xunit.coureur.visualstudio

0
répondu kDar 2017-10-15 09:11:32

j'avais beaucoup de projets de différents types dans ma solution et je ne pouvais pas exécuter le projet de test Xunit. Je les ai tous déchargés sauf mon projet Xunit et puis j'ai reconstruit la solution les tests sont apparus dans visual studio et je pouvais les exécuter.

0
répondu Youcef Kelanemer 2017-10-30 13:26:02

vous devez mettre à jour tous vos paquets lorsque vous déplacez VS2015 vers VS2017 pour le test discover dans test explorer.

0
répondu Sachin 2017-11-08 07:00:53

j'ai vidé Temp, %Temp% et Prefetch. Ensuite essayé réouverture VS et a été en mesure de trouver les méthodes d'essai

0
répondu Venkat Ramanan 2017-12-05 04:18:19

j'ai le projet d'essai A et B. Les essais dans le projet a ont été découverts mais la découverte ne s'est jamais arrêtée pour B. J'ai dû tuer manuellement TestHost pour arrêter.

j'ai fait beaucoup de choses cette page décrit au point même que je ne suis pas sûr que c'était la solution.

maintenant cela a fonctionné et la chose que j'ai faite était d'ouvrir la Solution et de ne pas avoir L'Explorateur de Test. Au lieu de cela, j'ai juste vérifié la fenêtre de sortie pour les Tests et j'ai pu voir le processus de découverte fin et le nombre de test où égal à A+B. Après cela, j'ai ouvert L'Explorateur de Test et puis à la fois A et B où présent. So:

désinstaller et installer correctement la dernière version de xUnit. Supprimer le % temp% comme mentionné ci-dessus, Ajouter NuGet paquet "Microsoft.TestPlatform.TestHost" Ajouter Le Paquet NuGet " Microsoft.NET.Test.Sdk", redémarrez mais vérifiez seulement la sortie des Tests. Si ça marche, vous verrez

0
répondu Tomas Hesse 2018-01-17 13:10:52

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 sont apparus pour d'autres devs Pour la même solution. Donc, j'ai tenté juste la suppression de mon .dossier vs, mais pas de chance là non plus.

j'ai fini par supprimer entièrement mon dossier local et re-cloner le repo. Qui a résolu pour moi.

0
répondu Paul G 2018-02-01 12:52:12