Les tests unitaires NUnit ne s'affichent pas dans l'Explorateur de tests avec l'adaptateur de test installé


145

J'ai installé l'adaptateur de test NUnit pour VS2012 + 2013. Lorsque j'ai installé pour la première fois les tests d'adaptateur apparaissaient, mais ils ont cessé de s'afficher pour une raison quelconque aujourd'hui. Après la construction, la reconstruction, le nettoyage, le redémarrage, rien ne s'affiche dans l'Explorateur de tests. Pourquoi cela arriverait-il? J'utilise VS2013 Ultimate.


2
Faites un clic droit sur votre projet de test, puis cliquez sur Exécuter. Il remplira à nouveau les fenêtres avec les tests.
Chase Florell

@ChaseFlorell ce n'est pas le cas. Je vois la barre verte dans l'Explorateur de tests commencer à disparaître, puis s'arrêter une fraction de seconde plus tard.
RobVious

Avez-vous d'autres outils de test qui pourraient interférer? J'utilise R # pour exécuter mes tests, et j'utilise VS2012, donc je n'ai pas assez bien votre environnement. Je sais que lorsque j'ai fermé la fenêtre ou exécuté un petit sous-ensemble de tests, l'arbre de test complet disparaît.
Chase Florell

Vous pouvez essayer de décharger le projet de test, de le reconstruire, puis de le recharger ...
Chase Florell

@ChaseFlorell J'ai R # mais c'est lent comme la mélasse avec les tests NUnit ... et ça fonctionnait avant ce qui est frustrant. J'essaierai de décharger.
RobVious

Réponses:


87

Si votre projet de test est défini pour cibler une plate-forme 64 bits, les tests n'apparaîtront pas dans l'adaptateur de test NUnit.


54
Il se peut qu'il doive correspondre à l'architecture spécifiée dans le menu Test -> Paramètres de test -> Architecture de processeur par défaut
Brannon

6
@Brannon C'est vrai. Si elle est définie sur x64, les tests des projets x64 sont visibles.
base

2
Quelque chose de bien plus stupide s'est produit ici - j'ai oublié d'ajouter l'attribut [Test] à ma méthode de test :)
Nikolai

Ce problème semble toujours présent dans l'adaptateur de test NUnit 3. Voir la solution de Simoyd concernant l'architecture de l'adaptateur de test (x64 vs x86).
bart

1
C'est une réponse incorrecte. Pour exécuter les tests, sélectionnez "Test" -> "Paramètres de test" -> "Architecture du processeur par défaut" -> "x64"
Andrew Rondeau

182

Si vous utilisez une version NUnit3 + , un nouvel adaptateur de test est disponible.

Allez dans "Outils -> Extensions et mises à jour -> En ligne" et recherchez "NUnit3 Test Adapter" , puis installez.


Extra +1 car cela a également résolu le problème de la disparition des métriques de couverture du code.
Aidanapword

Si le proxy du pare-feu a bloqué l'URL via les extensions et les mises à jour, utilisez cette URL pour télécharger l'adaptateur. marketplace.visualstudio.com/…
Yawar Murtaza

Notez que vous devrez peut-être également désactiver l'adaptateur de test NUnit2.
Mark Pattison

Quelle est la différence entre l'obtenir de cette façon et l'obtenir à partir du gestionnaire de packages NuGet?
octave

En utilisant NuGet, vous aurez accès à l'API de nunit. En utilisant cette méthode, vous pourrez exécuter les tests sur l'Explorateur de tests (par défaut, il n'exécute que le test MS).
Ricardo França

57

Mon assemblage de test est 64 bits. Dans la barre de menus en haut de Visual Studio 2012, j'ai pu sélectionner «Test» -> «Paramètres de test» -> «Architecture du processeur par défaut» -> «X64». Après une «Solution de reconstruction» du menu «Construire», j'ai pu voir tous mes tests dans l'explorateur de tests. J'espère que cela aidera quelqu'un d'autre à l'avenir = D.


3
Assurez-vous de vérifier l'architecture de vos assemblys et programmes. Même si la plate-forme de votre solution ou projet peut être explicitement définie sur x64, si votre architecture de test ne correspond pas, vous aurez des difficultés à exécuter les tests.
Dodzi Dzakuma

30

Vérifiez la non-concordance des versions de NUnit. L'adaptateur de test NUnit actuellement disponible ne fonctionne que pour la version 2.6.4 et inférieure de NUnit. Pour rétrograder NUnit à partir de la version 3.x, accédez à Package Manager Console> update-package NUnit -version 2.6.4

http://jeremybytes.blogspot.co.ke/2015/11/review-of-unit-testing-makes-me-faster.html


6
Vous monsieur, avez résolu mon problème avec précision! Je vous remercie! Theres un package nuget appelé NUnitTestAdapter.WIthFramework qui fonctionne un régal!
TheAkhemist

J'ai eu un problème similaire avec la non-concordance des versions de NUnit. Certains (mais pas tous) de mes tests ne s'affichaient pas dans l'Explorateur de tests, j'ai donc essayé toutes sortes de recommandations telles que la mise à jour de l'adaptateur de test NUnit. J'avais précédemment mis à niveau NUnit de 3.6.1 à 3.7.1 mais pour une raison quelconque, l'un de mes projets faisait toujours référence à nunit.framework.dll version 3.6.1 alors que tout le reste faisait référence à 3.7.1. J'ai mis à jour la référence à 3.7.1 et cela a fait l'affaire. Jusqu'à présent, mes tests n'ont pas disparu. Doigts croisés!
jrupe

23

Dans ma situation, le «NUnit3 Test Adapter» a été désactivé. Pour le réactiver, allez dans le menu

Outils-> Extensions et mises à jour ...

Sur le côté gauche, sélectionnez «Installé» -> «Tout».

Dans le coin supérieur droit, recherchez "nunit".

Si vous avez installé 'NUnit3 Test Adapter', avec l'élément trouvé, vous pouvez l'activer / le désactiver.

entrez la description de l'image ici


2
Pour moi, cela n'a pas fonctionné. J'ai essayé de désinstaller et il a fait semblant d'être parti, mais il était là après le redémarrage. J'ai compris que j'avais installé NUnit en tant qu'utilisateur standard, puis j'ai essayé de le désinstaller en tant qu'administrateur. VS ne dit rien à ce sujet ... La solution est donc d'essayer de l'activer sans privilèges d'administrateur ou vice versa.
Tom

10

Cette réponse semble assez basique mais ne m'était pas complètement évidente au début. Si vous (re) construisez la solution, elle ne construit que les projets qui sont configurés pour construire dans leBuild -> Configuration Manager

C'était mon problème, j'ai dû changer par inadvertance les paramètres de configuration de la construction ou quelque chose qui a empêché mes projets de test de construire (alors qu'ils l'étaient auparavant). Ainsi, la Test Explorerfenêtre regardait les DLL qui n'étaient pas à jour. Il est devenu clair pour moi que c'était le cas après avoir fait un Cleanet avoir vu la plupart de mes tests disparaître et ne pas revenir après une rebuild... une inspection plus poussée du bindossier a montré que ces projets n'étaient pas du tout en cours de construction.


Bien que tous les projets aient été définis pour être intégrés dans le gestionnaire de configuration, j'ai dû créer manuellement chaque projet de test pour que les tests réapparaissent.
Noel Widmer

J'ai construit manuellement mes projets de test. Cela ne suffisait pas. Je devais faire ce que disait cette réponse.
Jared

10

J'avais une configuration de travail (pour NUnit2 et NUnit3 selon la solution, et plusieurs versions de Visual Studio entre 2012 et 2017), et cela a soudainement cessé de fonctionner un jour: aucun test détecté dans aucune solution ou version de VS.

Dans mon cas, cela a aidé à supprimer %localappdata%\Temp\VisualStudioTestExplorerExtensions. Après un redémarrage de VS, tout fonctionnait comme avant.


10

Si vous utilisez VS 2017 et .net core , comme indiqué ici , vous devez ajouter des références au framework de test NUnit 3.6.1 , au testeur NUnit3TestAdapter 3.8.0-alpha1 et au SDK de test Microsoft.NET.Test.Sdk 15.0.0 .


3
Je n'utilise pas .NET Core, mais l'installation de l'adaptateur de test NUnit lorsque je suis passé à VS2017 a résolu le problème pour moi.
Ciaran Gallagher

8
  1. Outils
  2. Gestionnaire de packages NuGet
  3. Gérer les packages NuGet pour la solution
  4. Feuilleter
  5. NUnitTestAdapter.WithFramework
  6. Ctrl + R, A pour construire / exécuter des tests

entrez la description de l'image ici

L'utilisation de NUnitTestAdapter.WithFramework garantit qu'il y a peu / pas d'incohérences entre les versions de NUnit et NUnit Adapter (c'est-à-dire "ça marche")


pour moi, cela commence à fonctionner après la mise à jour de l'adaptateur vers NUnitAdapter3 (Menu VS -> Outils-> Extensions et mises à jour ...) + mise à jour de la page NuGet pour NUnit de 2.6.3 à 3.2.1 .Merci!
smily

1
c'est la seule chose qui a fonctionné pour moi - devait être celui "WithFramework" (pas seulement l'adaptateur standard)
Mani5556

4

Vérifiez si vous avez indiqué [TestFixureSetUp] et [Test]

dans la classe de test

échantillon:

namespace ClassLibrary1
{
   public class SimpleCalculator
   {
      public Calculator _calculator;
      [TestFixtureSetUp]
      public void initialize()
      {
         _calculator = new Calculator();
      }
      [Test]
      public void DivideTest()
      {
         int a = 10;
         int b = 2;
         int expectedValue = a/b;
         int actualValue = _calculator.Divide(a, b);
         Assert.AreEqual(expectedValue, actualValue, "Functionality not working properly!");
      }
   }   
}

1
TestFixtureSetup semble être obsolète, mieux vaut <NUnit.Framework.OneTimeSetUp>
Jochen

1

J'ai dû désinstaller puis réinstaller le package nuget xunit.runner.visualstudio. J'ai essayé cela après avoir essayé toutes les suggestions ci-dessus, alors peut-être que c'était un mélange de choses.


1

Une autre cause de ce problème est si vous ouvrez un projet à partir d' un lecteur mappé - Visual Studio gère correctement ces projets, mais apparemment Nunit ne les prend pas en charge.

La copie du projet sur un physique a résolu le problème.


0

J'ai également constaté que lorsque j'ai désinstallé nunit v3.2.1, la référence du cadre nunit pour la v3.2.1 était toujours dans mon projet dans l'explorateur de solutions. Explorateur de solutions> Nom du projet > Références

Si vous faites un clic droit, la version s'affiche. Supprimez-le, puis faites un clic droit sur Références> Ajouter une référence.

Recherchez la version 2.x et ajoutez la solution puis reconstruisez.

Cela a fonctionné pour moi!


0

J'ai rencontré le problème mentionné par op

Mon cas était que j'avais reçu un ancien projet et que les tests faisaient en fait partie du système en cours de test. Je suppose qu'ils utilisaient le testeur externe.

cette chaîne de tâches a résolu le problème pour moi

  • créé un projet de test,
  • déplacé les fichiers de test là-bas
  • ajout de références pour que le projet de test compile
  • ajouté les packages NuGet de l'adaptateur Nunit et Nunit au projet de test
  • recompilé

j'ai pu exécuter avec succès les tests Nunit.


0

Si vous utilisez l' TestCaseSourceattribut, assurez-vous que la source existe et respecte la documentation , sinon vos tests ne seront pas découverts.


0

J'ai eu un problème similaire où les tests n'étaient pas découverts. J'avais la bonne version de NUnit, les versions correspondant entre NUnit et l'adaptateur, et les tests étaient correctement étiquetés. J'utilisais VS 2017 Enterprise pas en tant qu'administrateur. Après avoir démarré VS en tant qu'administrateur, les tests sont apparus.


0

J'ai commencé une nouvelle solution avec un projet de test dedans et je l'ai comparée à mon projet de problème d'origine. L'original, pour une raison quelconque, contenait un app.config . J'ai exclu ce fichier du projet et j'ai vu mes tests réapparaître dans l'explorateur de tests.


0

J'ai eu ce problème aussi mais la cause était différente. J'utilise VS2017 avec F # 4.0.

Premièrement, la console de Visual Studio ne vous donne pas suffisamment de détails sur les raisons pour lesquelles les tests n'ont pas pu être trouvés; il échouera tout simplement à charger la DLL avec les tests. Utilisez donc NUnit3console.exe sur la ligne de commande car cela vous donne plus de détails.

Dans mon cas, c'était parce que l'adaptateur de test recherchait une version plus récente de la DLL F # Core (4.4.1.0) (F # 4.1) alors que j'utilise toujours 4.4.0.0 (F # 4.0). Je viens donc d'ajouter ceci à l'app.config du projet de test: -

  <dependentAssembly>
    <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.0.0" />
  </dependentAssembly>

c'est-à-dire rediriger vers le noyau F # antérieur.


0

J'ai eu le même problème, quand tout à coup aucun test n'est apparu dans la fenêtre de l'Explorateur de tests. J'ai la version mise à jour de "NUnit3TestAdapter"

et après de nombreuses recherches et efforts, j'ai trouvé que je devais définir les valeurs suivantes dans les propriétés du projet: [Dans la fenêtre de l'Explorateur de solutions: cliquez avec le bouton droit sur Projet> Propriétés] Sous l'onglet Construire, définissez Platform = x64 et définissez Platform target = x86 ou N'importe quel processeur Construisez le projet et tous les tests apparaîtront dans la fenêtre de l'Explorateur de tests.

Remarque importante: je suis venu à une solution après avoir vu le msg suivant dans la fenêtre de sortie:

«Le test d'exécution utilisera des DLL construites pour le framework Framework45 et la plate-forme X86. Les DLL suivantes ne feront pas partie de l'exécution: AutomationTests.dll est construit pour Framework Framework45 et Platform X64.»


0

J'avais des processus msbuild.exe qui étaient bloqués. Je ne sais pas si c'était mon problème ou non, mais cela m'a pris beaucoup de chemin et d'erreurs avec la réinstallation de divers adaptateurs NUnit avant de trouver les processus bloqués.


0

Juste pour ajouter mon 0,02 $ ici, j'ai rencontré un problème similaire hier, où 168 de mes tests manquaient. J'ai presque tout essayé dans cet article - surtout en m'assurant que ma (mes) version (s) de NUnit étaient les mêmes - en vain. Je me suis alors rappelé que j'avais mes tests divisés en listes de lecture; et ceux - ci ne se mettent pas à jour automatiquement lorsque vous ajoutez de nouveaux tests . Donc, quand j'ai supprimé les listes de lecture, BAM! , tous mes tests étaient de retour.


-1

Assurez-vous que vos tests sont correctement marqués avec l'attribut Test. Si tous les tests sont marqués uniquement avec l'attribut Explicit, le TestAdapter ne reconnaît pas l'appareil.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.