Pourquoi Visual Studio 2012 ne trouve-t-il pas mes tests?

J’ai quelques tests qui utilisent le Microsoft.VisualStudio.TestTools.UnitTesting intégré, mais ne peut pas les faire fonctionner.

J’utilise Visual Studio 2012 Ultimate.

J’ai une solution de deux projets; On a des tests, en using Microsoft.VisualStudio.TestTools.UnitTesting , [TestClass] avant la classe, [TestMethod] avant les méthodes de test et en faisant référence à Microsoft.VisualStudio.QualityTools.UnitTestFramework (version 10.0.0.0, version d’exécution v2.0.50727). J’ai essayé le framework 3.5, 4 et 4.5 de dot-net, d’autres donnent une erreur de ré-ciblage.

J’ai essayé de construire la solution et le projet. L’explorateur de tests a le message `Construisez votre solution pour découvrir tous les tests disponibles. Cliquez sur “exécuter tout” pour créer, découvrir et exécuter tous les tests de votre solution.

Donc, la question est la suivante: comment obtenir du studio visuel pour trouver les tests?


Ont également essayé de suivre ceci: http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx mais sans succès: je suis coincé dans la section pour commencer, lorsqu’on lui demande de Faites un clic droit et sélectionnez create tests . Il n’y a pas de create tests .


J’ai ce test (il comstack, mais ne s’affiche pas dans l’explorateur de test):

 using Microsoft.VisualStudio.TestTools.UnitTesting; namespace tests { [TestClass] public class SimpleTest { [TestMethod] public void Test() { Assert.AreEqual("a","a", "same"); } } } 

J’ai maintenant découvert (voir la réponse supprimée ci-dessous) que c’est parce que c’est sur un disque partagé, mais je ne sais pas encore comment le contourner. (quelque chose sur le paramètre de sécurité peut-être).

J’ai eu les mêmes symptômes, mais dans des circonstances différentes.

J’ai dû append une étape supplémentaire à la solution de Peter Lamberg – Nettoyer votre solution / projet.

Mes cibles les plus importantes concernent le x64. Lorsque j’ai créé le projet, il visait à l’origine x86.

Après avoir basculé sur x64, tous mes tests unitaires ont disparu.

Je devais aller au menu Test -> Configuration du test – Architecture du processeur par défaut -> x64.

Ils ne se sont toujours pas présentés.

A fait un build

Toujours pas montré.

Enfin fait un clean

Puis ils se sont présentés.

Je trouve que Clean Solution and Clean est très utile pour obtenir les solutions pour jouer à la balle quand le réglage a changé. Parfois, je dois aller à l’extrême et supprimer les répertoires obj et bin et effectuer une reconstruction.

Veuillez append le mot-clé public à votre définition de classe. Votre classe de test n’est actuellement pas visible en dehors de son propre assembly.

 namespace tests { [TestClass] public class SimpleTest { [TestMethod] public void Test() { Assert.AreEqual("a","a", "same"); } } } 

Cela fonctionne parfois.

Vérifiez que l’architecture du processeur sous le menu Test correspond à celle que vous utilisez pour générer la solution.

Test -> Paramètres de test -> Architecture du processeur par défaut -> x86 / x64

Comme mentionné dans d’autres publications, assurez-vous que la fenêtre de l’Explorateur de tests est ouverte. Test -> Windows -> Explorateur de tests

Ensuite, reconstruire le projet avec les tests devrait faire apparaître les tests dans l’Explorateur de tests.

Edit: Comme Ourjamie l’a souligné ci-dessous, faire un build propre peut aussi aider. En plus de cela, voici une autre chose que j’ai rencontrée:

La case à cocher “Build” n’a pas été cochée dans Configuration Manager pour un nouveau projet de test que j’avais créé sous la solution.

Allez dans Build -> Configuration Manager. Assurez-vous que la case à cocher de votre projet de test est cochée pour toutes les configurations de solution et toutes les plates-formes de solution.

J’ai Visual Studio 2012 et je ne pouvais pas voir les tests dans Test Explorer,

J’ai donc installé les éléments suivants: NUnit Test Adapter

Cela a résolu le problème pour moi!

Dans mon expérience récente, tout ce qui précède n’a pas fonctionné. Ma méthode de test

 public async void ListCaseReplace() { ... } 

ne se montrait pas mais compilait bien. Lorsque j’ai supprimé le mot-clé async le test apparaissait dans l’Explorateur de tests. C’est la raison pour laquelle async void est une méthode «fire-and-forget». Faites la méthode async Task et vous obtiendrez votre test!

De plus, le fait de ne pas définir la configuration du projet Test sur «Build» empêchera également l’affichage des tests. Gestionnaire de configuration> Vérifiez votre test pour générer.

Étant donné que le projet est sur un lecteur partagé comme l’a indiqué l’affiche originale. VS.NET doit faire confiance à l’emplacement réseau avant de charger et d’exécuter vos assemblys de test. Lisez ce billet de blog .

Pour permettre à VS.NET de charger des éléments d’un partage réseau, vous devez les append (partages) à des emplacements approuvés. Pour append un emplacement à une liste de confiance complète, procédez comme suit:

  caspol -m -ag 1.2 -url file:///H:/* FullTrust 

Pour vérifier ou répertorier les emplacements approuvés existants, procédez comme suit:

  caspol -lg 

Un problème que j’ai trouvé est que les tests ne sont pas trouvés dans l’Explorateur de test (rien ne s’affiche) si la solution s’exécute sur un lecteur réseau / un emplacement réseau / un lecteur partagé.

Vous pouvez résoudre ce problème en ajoutant une variable d’environnement.

COMPLUS_LoadFromRemoteSources et définissez sa valeur sur 1

Je recevais l’erreur: "Failed to initialize client proxy: could not connect to vstest.discoveryengine.exe."

Essayez d’exécuter Visual Studio en tant qu’administrateur. Cela a fonctionné pour moi.

Il y a une autre publication de Stack Overflow sur cette erreur , et la même solution fonctionne pour eux. La question rest de savoir pourquoi cela fonctionne.

J’ai eu le même problème .. Dans mon cas, il a été causé par une propriété privée TestContext .

En le changeant pour le suivant a aidé:

 public TestContext TestContext { get; set; } 

Après avoir nettoyé et construit la solution (comme décrit dans la réponse de @Ourjamie), les méthodes de test de la classe de test concernée étaient disponibles dans l’Explorateur de tests.

J’ai rencontré le même problème en essayant d’ouvrir la solution sur un partage réseau. Aucun test d’unité ne serait détecté par Test Explorer dans ce cas. La solution s’avère être:

Panneau de configuration -> Options Internet -> Onglet “Sécurité” -> Cliquez sur “Intranet” et ajoutez l’adresse IP ou le nom d’hôte du serveur contenant le partage réseau à la liste “Sites”.

Après cela, j’ai recompilé la solution et maintenant les tests sont apparus. Cela devrait être assez similaire à la réponse faite par @BigT.

Liste de vérification rapide pour résoudre certains problèmes de test courants. Sois sûr que:

  1. La classe de test et les méthodes de test sont public
  2. La classe de test a l’atsortingbut [TestClass]
  3. Les méthodes de test ont l’atsortingbut [TestMethod]

Si cela ne vous aide pas, essayez de nettoyer, de reconstruire la solution et de redémarrer Visual Studio.

J’ai parfois les mêmes symptômes.

Ce que j’ai fait c’est:
1. Fermé la fenêtre de l’Explorateur de tests
2. nettoyé la solution
3. Reconstruire la solution
4. Relance de la fenêtre de l’Explorateur de tests à partir de Test -> Windows -> Explorateur de tests.

Et j’ai eu mon test dans la fenêtre Test Explorer.

De la barre de menu en haut …

Test -> Exécuter -> Tous les tests

Vous pouvez également afficher tous les tests à partir de l’Explorateur de tests (Test -> Windows -> Explorateur de tests)

De plus, avec VS 2012, si vous manquez quelque chose, essayez de chercher en utilisant la barre de lancement rapide en haut à droite (Ctrl + Q) “Test”

J’espère que cela t’aides.

J’ai trouvé que le meilleur moyen de résoudre ce problème était de créer un fichier .proj msbuild et d’append vos projets de test unitaires dont vous avez un problème dans ce fichier et d’exécuter les tests en utilisant la version de ligne de commande de mstest. J’ai trouvé un petit problème de configuration dans mon app.config qui est apparu uniquement lors de l’exécution des tests de mstest – sinon le projet de test s’est bien passé. Vous trouverez également des problèmes de référence indirects avec cette méthode. Une fois que vous pouvez exécuter le test unitaire à partir de la ligne de commande en utilisant mstest, vous pouvez alors effectuer une solution propre, reconstruire la solution et votre test doit être correctement découvert.

Dans mon cas, c’était autre chose. J’avais installé un paquet, puis désinstallé et réinstallé une version antérieure. Cela a laissé une configuration/runtime/asssemblyBinding/dependencyIdentity résiduelle configuration/runtime/asssemblyBinding/dependencyIdentity redirect dans mon app.config. Je devais le corriger. Je l’ai compris en regardant la fenêtre de Output et en sélectionnant ” Tests ” dans le menu déroulant. Le message d’erreur était là. C’était une douleur … J’espère que ça aide quelqu’un d’autre.

C’est plus pour aider les gens qui se retrouvent ici plutôt que de répondre à la question du PO:

Essayez de fermer et de rouvrir le studio visuel, faites le tour pour moi.

J’espère que cela aide quelqu’un.

Je sais que c’est une question plus ancienne mais avec Visual Studio 2015, je rencontrais des problèmes où ma classe de test nouvellement créée n’était pas reconnue. Tout essayé Ce qui a fini par être le problème, c’est que la classe n’était pas “incluse dans le projet”. Je ne l’ai trouvé qu’au redémarrage de Visual Studio et en remarquant que ma classe de test n’était pas là. En montrant les fichiers cachés, je l’ai vu, ainsi que d’autres classes que j’avais écrites, n’étaient pas inclus. J’espère que cela pourra aider

J’ai été confronté à ce problème plusieurs fois lorsque j’essaie de construire la solution sur un autre PC.

J’utilise également NUnit et Specflow. Par défaut Mon projet de test cible X86 Mais je dois changer cela en X64. Les étapes sont 1. Menu Test -> Paramètre de test – Architecture du processeur par défaut -> x64. 2. Clean Build 3. Build 4. Si les tests ne sont toujours pas visibles. 5. Accédez à Outils  Extensions et mises à jour, puis installez les bibliothèques NUnit et Specflow 6. Nettoyez Build 7. Build

Ensuite, généralement test testera montré dans l’éditeur de test.

J’ai mis à jour VS 2012 à la dernière mise à jour. c’est-à-dire la mise à jour en studio visuelle 3. Cela a résolu le problème pour moi.

Pour moi, la solution était un peu moins compliquée.

Je venais d’apporter une solution existante sur ma machine (clonée à partir de gitHub) et nous ne suivons pas les fichiers .cs générés automatiquement que Visual Studio a créés. (Pour chaque fichier de fonctionnalité, il existe un fichier .cs portant le même nom)

L’ouverture de la solution sans avoir les fichiers .cs associés me permet en fait d’accéder aux méthodes liées. Il est donc apparu que le stream de données était correctement configuré, mais je n’ai pas pu afficher les noms des tests dans l’Explorateur de tests.

Pour ce problème, il suffit d’exclure les fichiers de fonctionnalités du projet et de les réintégrer, ce qui a forcé VS à régénérer ces fichiers de codebehind générés automatiquement.

Après cela, j’ai pu voir les tests dans l’explorateur de test.

J’ai rencontré ce problème lors de la mise à niveau de ma solution de Microsoft Visual Studio 2012 Express pour Web vers Microsoft Visual Studio 2013.

J’avais créé un projet de tests unitaires en 2012, et après l’ouverture en 2013, le projet Unit Test n’affichait aucun test dans l’explorateur de tests. Chaque fois que j’ai essayé d’exécuter ou de déboguer des tests, cela a échoué, en indiquant ce qui suit dans la fenêtre de sortie:

  Failed to initialize client proxy: could not connect to vstest.discoveryengine.x86.exe 

J’ai également remarqué que lors du débogage des tests, il lançait une instance de Visual Studio 2012. Cela m’a fait comprendre que le projet Unit Tests faisait toujours référence à 2012. En regardant la référence du projet de test, j’ai réalisé qu’il visait le mauvais Microsoft Visual. Studio Unit Test Framework DLL pour cette version de Visual Studio:

 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

J’ai changé le numéro de version de 11.0 à 12.0:

 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

J’ai reconstruit tout et cela a résolu le problème – tous les tests ont été trouvés dans l’Explorateur de Test et maintenant tous les tests sont trouvés et fonctionnent parfaitement.

Vérifiez que votre projet de test n’est pas défini sur Retarder uniquement dans les propriétés de votre projet -> Signature. Si c’est le cas, désélectionnez-le et effectuez une nouvelle reconstruction.

J’ai rencontré le même problème en essayant d’ouvrir la solution sur un partage réseau dans VS2013 Ultimate.

J’ai corrigé le problème en allumant

Panneau de configuration -> Options Internet -> Onglet “Sécurité” -> Cliquez sur “Intranet local”, cliquez sur les sites et assurez-vous que “Détecter automatiquement le réseau intranet” est coché.

Ce sont toutes de bonnes réponses, mais il y a une raison de plus que je connais; Je viens de le rencontrer. Dans un de mes tests, j’avais un message ReSharper indiquant que j’avais une classe privée non utilisée. C’était une classe que je vais utiliser dans un test à venir. Cela a effectivement fait disparaître tous mes tests.

Vérifiez les assemblys référencés pour tous les assemblys qui peuvent avoir “Copy Local” défini sur “False”.

Si votre projet de test est créé dans son propre dossier (bin / Debug par exemple) et que le projet dépend d’un autre assembly et que l’un de ces assemblys dans la liste References est marqué Copy Local = “False”, l’assembly ne peut pas être chargé vos tests ne se chargeront pas après une construction.

Il semble que NUnit Framework 2.6.4 ne fonctionne pas correctement avec NUnit Test Adapter. Sur le site Web, il mentionne que l’adaptateur de test ne fonctionnera qu’avec NUnit Framework 2.6.3.

C’était mon problème: 1. J’ai téléchargé NUnit et NUnit Test Adapter séparément via Nuget dans le VS2012. D’une certaine manière, NUnit a été mis à jour en 2.6.4 Soudain, je n’ai pas vu mes cas de test répertoriés.

Réparer:

  1. Désinstallez l’adaptateur Nuget et Nuget Test

    une. Allez dans Outils> Nuget> Gestionnaire Nuget Pkg> Gérer Nuget Pkg pour Solution

    b. Liste des paquets installés

    c. Cliquez sur gérer

    ré. Désélectionnez vos projets

  2. Installez l’adaptateur de test NUnit, y compris NUnit 2.6.3 Framework

  3. Nettoyer / Reconstruire la solution

  4. Test ouvert> Explorateur de tests> Exécuter tout

Je vois tous les cas de test

J’espère que cela t’aides

Aucune des solutions ici ne m’a aidé. Les tests ne seraient pas découverts pour une solution alors qu’une autre solution faisant référence aux mêmes projets fonctionnait correctement. J’ai finalement résolu ce problème en supprimant le fichier solutionname.v12.suo.

J’ai eu le même problème, mais un peu différent.

J’utilisais Visual Studio 2012. Pour une raison quelconque, seuls les tests du fichier généré initialement étaient en cours d’exécution. Mais les tests dans un autre fichier ne fonctionnaient pas. Essayé différentes solutions affichées ici, n’a pas fonctionné.

Finalement, j’ai compris que j’avais une méthode privée dans la classe de test qui était la première méthode dans la classe. Je viens de déplacer la méthode privée après une méthode de test; maintenant, une méthode avec l’atsortingbut [TestMethod] est la première méthode dans la classe. Étrange, mais maintenant ça marche.

J’espère que cela aide quelqu’un un jour.

Les tests n’aiment pas les méthodes asynchrones. Par exemple:

  [TestMethod] public async void TestMethod1() { TestLib oLib = new TestLib(); var bTest = await oLib.Authenticate(); } 

Après avoir fait ceci:

  [TestMethod] public void TestAuth() { TestMethod1(); } public async void TestMethod1() { TestLib oLib = new TestLib(); var bTest = await oLib.Authenticate(); } 

Il a vu le test.

L’ajout de ma réponse car c’est le meilleur résultat sur Google pour cela.

J’utilise Visual Studio 2015 et (sans le savoir – je viens de lancer Install-Package NUnit ) a installé le package NUnit3 NuGet sur mon projet de test. L’extension NUnit Test Adapter était déjà installée et mes tests n’étaient toujours pas affichés.

L’installation de l’adaptateur de test NUnit3 via Outils> Extensions et mises à jour a résolu ce problème pour moi.