Pourquoi visual studio 2012 pas trouver mes tests?

j'ai quelques tests qui utilisent le construit dans Microsoft.VisualStudio.TestTools.UnitTesting , mais ne peut pas les faire fonctionner.

j'utilise visual studio 2012 ultimate.

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

j'ai essayé de construire la solution et le projet. L'Explorateur de Test a le message ' Construisez votre solution pour découvrir tous les tests disponibles. Cliquez sur "exécuter tout" pour construire, découvrir et exécuter tous les tests de votre solution.

donc la question Est: Comment obtenir visual studio pour trouver les tests?


ont également essayé de suivre ce: http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx but sans aucun succès: je suis coincé dans la section pour commencer, quand on me demande de cliquer avec le bouton droit de la souris et de sélectionner create tests . Il n'y a pas de create tests .


j'ai ce test(il compile, mais n'apparaît pas dans Test explorer):

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 qu'il est sur un lecteur partagé, mais je ne sais pas encore comment le contourner. (quelque chose au sujet de l' paramètre de sécurité peut-être).

217
demandé sur Gray 2012-11-23 21:04:43

30 réponses

j'avais les mêmes symptômes, mais dans des circonstances différentes.

j'ai dû ajouter une étape supplémentaire à la solution de Peter Lamberg - nettoyer votre solution/projet.

mon projet unittest cible x64. Quand j'ai créé le projet, il ciblait à l'origine x86.

après être passé sur x64, tous mes tests ont disparu.

j'ai dû aller au Menu Test - > paramètres de Test-Architecture de processeur par défaut -> x64.

ils ne sont toujours pas venus.

a fait un build.

N'est toujours pas venu.

enfin fait un nettoyage

puis ils se sont pointés.

je trouve Solution propre et propre à être très utile pour obtenir les solutions à jouer la balle lors du réglage ont changé. Parfois je dois aller à l'extrême et supprimer les répertoires obj et bin et faire reconstruire.

224
répondu Ourjamie 2015-02-01 21:38:23

veuillez ajouter le mot-clé public à la définition de votre classe. Votre classe test n'est actuellement pas visible en dehors de son propre assemblage.

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}
156
répondu Joe King 2013-01-23 20:59:21

ça marche parfois.

vérifier que l'architecture du processeur sous menu Test correspond celui que vous utilisez pour construire la solution.

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

comme mentionné dans d'autres messages, assurez-vous que vous avez la fenêtre de L'Explorateur de Test ouverte. Test -> Windows -> Explorateur De Tests

alors reconstruire le projet avec les tests devrait faire apparaître les tests dans l'Explorateur de tests.

Edit: comme Notrejamie l'a souligné ci-dessous, faire une construction propre peut aussi aider. En plus de cela, Voici une autre chose que j'ai rencontrée:

la case à cocher" construire " n'a pas été cochée dans le Gestionnaire de Configuration pour un nouveau projet d'essai que j'avais créé sous la solution.

aller à Build -> Gestionnaire de Configuration. Assurez-vous que votre projet de test a construire case cochée pour toutes les configurations de solutions et plateformes de solutions.

57
répondu Peter Lamberg 2014-01-24 10:11:52

j'ai Visual Studio 2012 et je ne pouvais pas voir les Tests dans l'Explorateur de tests,

donc j'ai installé le suivant: Adaptateur D'Essai NUnit

qui a réglé le problème pour moi !

32
répondu dnnyz 2014-04-23 12:21:42

d'après mon expérience récente, tout ce qui précède n'a pas fonctionné. Ma méthode d'essai

public async void ListCaseReplace() { ... }

ne se présentait pas mais compilait amende. Quand j'ai enlevé le mot-clé async le test le s'est montré dans L'Explorateur de Test. C'est la bacause async void est une méthode "feu-et-oublier". Faites la méthode async Task et vous obtiendrez votre test de retour!

de plus, le fait de ne pas avoir la configuration du projet D'essai définie à "construire" empêchera également les essais d'apparaître. Gestionnaire de Configuration > vérifiez votre Test de construction.

18
répondu MoonKnight 2015-11-20 09:02:28

puisque le projet est sur un lecteur partagé comme l'affiche originale ont indiqué. VS.NET besoin de faire confiance à l'emplacement du réseau avant qu'il ne charge et exécute vos assemblages de test. Avoir une lecture de ce billet de blog .

pour permettre VS.NET pour charger les choses d'un partage de réseau, il faut les ajouter (partages) à des emplacements de confiance. Pour ajouter un emplacement à une liste de confiance complète, Lancez (évidemment modifiez comme requis pour votre environnement):

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

pour vérifier ou lister les emplacements de confiance existants, Lancez:

 caspol -lg
12
répondu Taras Alenin 2013-08-08 04:42:47

un problème que j'ai trouvé est que les tests ne sont pas trouvés dans L'Explorateur de Test (rien n'apparaît) si la solution est en cours d'exécution d'un lecteur réseau / emplacement réseau / lecteur partagé

vous pouvez corriger cela en ajoutant une variable d'environnement.

COMPLUS_LoadFromRemoteSources et fixe sa valeur à 1

10
répondu tim 2013-08-02 23:01:52

j'ai eu l'erreur: "Failed to initialize client proxy: could not connect to vstest.discoveryengine.exe."

essayez D'exécuter Visual Studio en tant qu'administrateur. Ce qui a fonctionné pour moi.

il y a un autre post de débordement de pile discutant de cette erreur , et la même solution fonctionne pour eux. La question demeure de savoir pourquoi cela fonctionne.

7
répondu Edward Olamisan 2017-05-23 12:02:50

j'ai eu le même problème.. Dans mon cas, il a été causé par un propriété privée TestContext .

Changer à la suite m'a aidé:

public TestContext TestContext
{
    get;
    set;
}

après le nettoyage et la construction de la solution (tel que décrit dans @Ourjamie 's answer), les méthodes d'essai dans la classe d'essai affectée étaient disponibles dans L'Explorateur d'Essais.

6
répondu Stephan Bauer 2013-07-23 20:30:18

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

Panneau de contrôle -> Options Internet - > Onglet" Sécurité "- > cliquez sur" Intranet "et ajoutez l'adresse IP du serveur ou le nom de l'hôte détenant le partage de réseau à la liste" Sites".

après avoir fait cela, j'ai recompilé la solution et maintenant des tests sont apparus. Cela devrait être assez similaire à la réponse faite par @BigT.

6
répondu dracocephalum 2013-09-24 01:04:14

liste de contrôle rapide pour résoudre certains problèmes de test courants. Assurez-vous que:

  1. la classe d'essai et les méthodes d'essai sont public
  2. "
  3. classe a [TestClass] attribut
  4. méthodes d'Essai ont [TestMethod] attribut

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

6
répondu SoftwareFactor 2014-03-18 10:16:51

j'ai parfois les mêmes symptômes.

ce que j'ai fait est:

1. Fermer la fenêtre Test Explorer

2. Nettoyé la solution

3. Reconstruire la solution

4. Fenêtre Test Explorer relancée de Test - > Windows - > Test Explorer.

et j'ai eu mon test dans la fenêtre Test Explorer.

4
répondu CSharp 2014-01-24 09:52:04

dans la barre de menu en haut...

Essai - > Exécution - > Tous Les Essais

vous pouvez aussi voir tous les tests de Test Explorer (Test -> Windows -> Test Explorer)

plus loin avec VS 2012, si vous manquez quelque chose essayez la recherche en utilisant la barre de Lancement rapide en haut à droite (Ctrl + Q) "Test"

Espérons que cette aide.

2
répondu Adil 2012-11-23 17:31:50

j'ai trouvé la meilleure façon de résoudre ce problème est de créer un .proj msbuild fichier et ajouter vos projets de test d'unité qui vous avez un problème dans ce fichier et exécuter les tests en utilisant la version en ligne de commande de mstest. J'ai trouvé un petit problème de configuration de mon application.config qui n'est apparu que lors de l'exécution des tests à partir de mstest - sinon le projet de test construit très bien. Vous trouverez également tous les problèmes de référence indirecte avec cette méthode ainsi. Une fois que vous pouvez exécuter le test de L'Unité de la ligne de commande en utilisant mstest vous pouvez alors faire une solution propre, solution de reconstruction et votre test devrait être découvert correctement.

2
répondu Todd Carter 2013-04-24 15:48:36

Dans Mon cas, c'était autre chose. J'avais installé un paquet, puis je l'ai désinstallé et j'ai réinstallé une version précédente. Cela a laissé un résidu de redirection configuration/runtime/asssemblyBinding/dependencyIdentity dans mon application.config. J'ai eu à corriger. J'ai trouvé la solution en regardant la fenêtre 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 cela aide quelqu'un d'autre.

2
répondu Nestor 2014-03-26 15:49:06

c'est plus pour aider les gens qui finissent ici plutôt que de répondre à la question de L'OP:

essayez de fermer et de rouvrir visual studio, ça m'a fait du bien.

J'espère que ça aidera quelqu'un.

2
répondu Jake_Howard 2014-10-07 15:39:39

je sais qu'il s'agit d'une question plus ancienne, mais avec Visual Studio 2015, j'avais des problèmes où ma nouvelle classe de test n'était pas reconnue. A tout essayé. En fin de compte, le problème était que la classe n'était pas "incluse dans le projet". J'ai seulement trouvé ça en redémarrant Visual Studio et en remarquant que mon cours d'essai n'était pas là. Sur montrer les fichiers cachés, je l'ai vu, ainsi que d'autres classes que j'avais écrit, n'ont pas été inclus. Hope qui aide

2
répondu mortey 2015-08-31 19:34:36

j'ai éprouvé ce problème à plusieurs reprises lorsque j'ai essayé de construire la solution dans un PC différent.

J'utilise aussi NUnit et Specflow. Par défaut, mon projet de test cible X86, mais je dois le changer en X64. Les étapes sont 1. Menu de Test - > paramètres de Test-Architecture de processeur par défaut - > x64. 2. Construction Propre 3. Construire 4. Si les tests ne se présentent pas. 5. Aller aux outils փ Extensions et mises à jour puis installer NUnit et Specflow bibliothèques 6. Construction Propre 7. Construire

alors généralement test will s'est présenté dans L'éditeur de Test.

2
répondu Shiran Jayawardena 2015-12-09 11:01:30

j'ai mis à jour VS 2012 à la dernière mise à jour . ie mise à jour visual studio 3. Qui a résolu le problème pour moi.

1
répondu sam 2013-09-17 15:15:02

pour moi la solution était juste 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 l'auto-généré .fichiers cs créés par Visual Studio. (Pour chaque fichier, il y a un .cs fichier avec le même nom)

ouverture de la solution sans avoir la solution associée .les fichiers cs me permettent en fait de naviguer vers les méthodes liées, il semble donc que specflow était câblé correctement, mais je n'étais pas en mesure d'afficher les noms de tests dans l'Explorateur de tests.

pour ce problème en excluant simplement les fichiers de fonctionnalités du projet et en les incluant à nouveau, en forçant VS à régénérer ces fichiers codebehind générés automatiquement.

après cela, j'ai pu voir les tests dans l'Explorateur de test.

1
répondu Zack Weiner 2013-12-26 17:10:44

j'ai eu ce problème lors de la mise à niveau de ma solution de Microsoft Visual Studio 2012 Express pour Web à Microsoft Visual Studio 2013.

j'avais créé un projet de tests unitaires en 2012, et après l'ouverture en 2013, le projet de tests unitaires ne montrerait aucun test dans l'Explorateur de tests. Chaque fois que j'ai essayé d'exécuter ou de déboguer des tests, il a échoué, en disant ce qui suit dans la fenêtre de sortie:

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

j'ai aussi remarqué qu'en déboguant les tests, il était lancement d'une instance de Visual Studio 2012. Cela m'a amené au fait que le projet de tests unitaires faisait encore référence à 2012. En regardant la référence du projet de test, j'ai réalisé qu'il ciblait le mauvais cadre de test de Microsoft Visual Studio Unit 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 tout reconstruit et cela a réglé le problème - tous les tests ont été trouvés dans le Test Explorer et maintenant, tous les tests sont trouvés et fonctionne parfaitement.

1
répondu ladygargar 2014-01-18 22:33:52

vérifiez que votre projet d'essai est et non réglé sur . Si c'est le cas, désélectionnez-le et faites une reconstruction nette.

1
répondu Jan Dolejsi 2014-01-22 10:12:35

j'ai frappé le même problème en essayant d'ouvrir la solution sur un partage réseau dans VS2013 Ultime.

j'ai corrigé le problème en activant

Panneau de contrôle - > Options Internet - > Onglet "Sécurité" - > cliquez sur" intranet Local", cliquez sur les sites et assurez-vous que" Détection automatique du réseau intranet " est coché.

1
répondu huddy72 2014-01-22 11:04:25

ce sont toutes de grandes réponses, mais il y a une raison de plus que je connais; je viens de tomber dedans. Dans un de mes tests, j'ai eu un message de ReSharper indiquant que j'avais un cours privé non utilisé. C'était une classe que je vais utiliser dans un prochain test. Cela a effectivement causé tous de mes tests à disparaître.

1
répondu Mike Perrenoud 2014-03-20 18:13:16

vérifier les assemblages référencés pour tout assemblage qui peut avoir" copier Local "réglé sur"False".

si votre projet test construit sur son propre dossier (bin/Debug par exemple) et que le projet dépend d'un autre assemblage et qu'un de ces assemblages dans la liste de références est marqué copie locale = "False", l'assemblage ne peut pas se charger en raison de dépendances manquantes et vos tests ne se chargeront pas après une construction.

1
répondu Joshua Starner 2014-06-03 19:09:12

il semble que NUnit Framework 2.6.4 ne fonctionne pas bien avec NUnit Adaptateur D'essai. Sur le site web, il est mentionné que L'adaptateur de test ne fonctionnera qu'avec NUnit Framework 2.6.3.

C'était mon problème: 1. J'avais téléchargé L'Adaptateur de test NUnit et NUnit séparément via Nuget dans la VS2012. Quelque part NUnit a été mis à jour à 2.6.4 soudainement je n'ai pas vu mes cas de test énumérés.

Correction:

  1. Désinstaller Adaptateur d'essai Nuget et Nuget

    un. Allez à Outils> Nuget > Nuget Pkg gestionnaire de > Manage Nuget Pkg pour la Solution

    B. Liste des paquets installés

    C. Cliquez sur Gérer

    D. Un-vérifier vos projets

  2. installer NUnit test adaptateur incluant NUnit 2.6.3 Framework

  3. Nettoyer et régénérer la solution

  4. Test D'Ouverture De > L'Explorateur De Tests > Exécuter Tous Les

je vois tous les cas de test

Espérons que cette aide

1
répondu user2831855 2014-12-17 23:57:56

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 très bien. j'ai finalement résolu ce problème en supprimant le solutionname.v12.suo fichier.

1
répondu Craig Fisher 2015-02-01 21:32:23

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 test qui était la première méthode dans la classe. Je viens de déplacer la méthode privée après a méthode d'essai; donc maintenant, une méthode avec l'attribut [TestMethod] est la première méthode à l'intérieur de la classe. Étrange, mais maintenant ça fonctionne.

J'espère que ça aidera quelqu'un un jour.

1
répondu mshsayem 2015-10-15 04:36:32
Les essais

n'aiment pas les méthodes async. 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.

1
répondu DaBlue 2015-12-11 22:39:39

ajouter ma réponse car il s'agit du résultat le plus élevé sur Google pour cela.

J'utilise Visual Studio 2015 et (sans le savoir - je viens de lancer Install-Package NUnit ) installé le paquet NUnit3 NuGet à mon projet de test. J'avais déjà installé L'Adaptateur de test NUnit, et mes tests n'étaient toujours pas apparus.

installant L'Adaptateur de test NUnit3 par L'Intermédiaire D'Outils > Extensions et mises à jour a corrigé cela pour moi.

1
répondu simonlchilds 2016-05-13 15:19:04