Visual Studio 2013 ne découvre pas les tests unitaires

j'ai une solution simple dans visual studio 2013 qui est composée par un projet web, un projet de bibliothèque et un projet de test d'unité. Quand j'ouvre la solution et que j'essaie d'exécuter les tests unitaires, ils ne sont pas découverts par visual studio. Pour exécuter les tests, j'essaie d'aller dans le menu et de choisir Test -> Run -> Run all tests ou en ouvrant la fenêtre test explorer. Par ceux à méthodes visual studio ne découvre pas de tests dans la solution.

créer d'abord une unité simple projet de tests et essayer d'exécuter le test, visual studio savoir découvrir le test et je peux l'exécuter. Puis, si j'ouvre ma solution précédente visual studio découvre maintenant tous les tests. J'essaie de sauver ma solution mais en la fermant et en la rouvrant, sans créer d'abord un projet de test unitaire, le studio visuel ne retrouve plus les tests. C'est un très étrange comportement que je ne sais pas pourquoi ce qui se passe.

j'avais l'habitude de travailler seul dans ce projet qui utilisait le git de contrôle à la source intégré à la fondation visual studio team. Le problème de visual studio ne pas découvrir les tests de l'unité commencent quand un nouvel élément est venu au projet et quand j'ai besoin de recréer la solution à travers le contrôle source en ligne. Avant cela, tous les tests ont toujours été découverts par visual studio.

pour la création de l'unité tests j'utilise la dll Microsoft.VisualStudio.QualityTools.UnitTestFramework. Ma version de visual studio est: Microsoft Visual Studio Express 2013 pour le Web Version 12.0.30723.00 Mise À Jour 3. Ma version de .net framework est 4.5.50938.

tous mes tests sont comme ceci:

[TestClass] 
public class Service1Test 
{ 
    [TestMethod] 
    public void Test1() 
    {
        Assert.IsTrue(True); 
    } 
}
140
demandé sur Guilherme Fidelis 2014-08-14 13:17:10

30 réponses

J'ai remarqué certaines choses que je dois faire de temps en temps pour obtenir des tests pour apparaître correctement.

  1. Si votre solution est dans un lecteur protégé que vous avez besoin d'un accès administrateur pour lire/écrire, parfois seulement une partie des tests. Dans ce cas, exécutez définitivement VS en tant qu'administrateur.

  2. si votre solution est 64 bits, assurez-vous que Test > paramètres de Test > L'Architecture du processeur par défaut est ensemble pour x64. Parfois il est réglé sur x86. Mettez-le sur x64, puis reconstruisez.

  3. parfois, redémarrer Visual Studio Fait l'affaire parce que l'Explorateur de test redémarre.

  4. n'oubliez pas de construire le projet/solution d'essai. (Si vous voulez qu'il soit construit avec le reste des projets, faites un clic droit sur votre solution > Propriétés > Propriétés de Configuration > Configuration > vérifiez le "Construire" de votre projet de test)

  5. S'assurer que les essais sont dans une section public de votre classe d'essai

205
répondu AndyG 2017-03-01 14:48:51

si vous utilisez NUnit, assurez-vous de télécharger L'Adaptateur NUnit en premier.

allez à outils → Extensions et mises à jour... → en ligne → rechercher"NUnit test adaptateur".

78
répondu Farukh 2016-06-16 16:04:56

assurez-vous que votre classe d'essai est public donc il peut être trouvé. Et si vous faites référence à une autre classe, assurez-vous de la même chose.

aussi , parfois si vous n'avez pas D'assertions ou si vous ne décorez pas le test avec un [TestMethod] , un test pourrait ne pas être reconnu.

2 autres choses: 1) les tests de l'unité asynchrone agissent de façon amusante au mieux, et Aucun Au pire. Regardez cet article par Stephen Cleary et de garder de là si cela vous intéresse.

2) Si vous utilisez NUnit et que vous rencontrez les mêmes problèmes, gardez à l'esprit que C'est [TestCase] pour Nunit, au lieu de [TestMethod]

ayant dit ce qui précède, voici un article j'ai posté sur le projet de code, à la fois MSTest et NUnit , au cas où vous voulez lui donner un tour et s'assurer que vous ne manquez rien.

55
répondu Noctis 2015-01-10 23:30:29

j'ai eu le même problème mais aucune des autres solutions n'a fonctionné. Il s'avère que J'utilisais le cadre NUnit 3 avec l'adaptateur 2.

si vous utilisez NUnit 3, Allez à Extensions et mises à jour et installez L'Adaptateur de test NUnit3.

28
répondu Frank 2015-07-22 22:31:37

j'ai ce problème de temps en temps. Ce qui fonctionne pour moi, c'est d'arrêter Visual Studio et d'aller dans le dossier:

%LocalAppData%\Microsoft\VisualStudio.0\ComponentModelCache

et supprimer son contenu.

une fois que vous ouvrez Visual Studio et chargez votre projet de nouveau, testez Explorer devrait contenir vos tests

11
répondu Mariusz Gorzoch 2015-07-30 17:23:40

les utilisateurs de XUnit peuvent remarquer que la fenêtre Test Explorer ne contient plus de liste de tests. Pour que les tests puissent être découverts à nouveau, essayez cette astuce importante , en surbrillance ci-dessous.

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. Également faire bien sûr, votre projet n'est lié qu'à une seule version du paquet NuGet Visual Studio runner (xunit.coureur.visualstudio).

Type in TEMP to find target folder

11
répondu SushiGuy 2016-09-21 16:00:51

pour les futurs googleurs, j'ai eu un scénario rare qui a causé ça.

dans ma classe de base, J'avais une propriété appelée TestContext. Cela interférait avec la propriété TestContext réservée de MSTest, ce qui rendait tous mes tests cachés à VS/Resharper sauf un (qui n'héritait pas de la base).

5
répondu Adam Behrle 2015-09-18 22:42:53

pour moi, il était en train de changer les "configurations de la solution" en Debug (au lieu de Release).

4
répondu zook2005 2015-08-10 09:32:04

mon problème était parce que ma méthode d'essai unitaire n'était pas nul , et il recevait des paramètres.

4
répondu alansiqueira27 2016-03-24 12:33:21

j'ai constaté que les méthodes d'essai unitaires marquées async void ne sont pas découvertes par L'Explorateur de test VS. Cela semble être parce que VS n'aurait aucun moyen d'attendre pour un test d'arrivée et de décider si elle a réussi ou non. Si vous avez absolument besoin d'une méthode de test pour exécuter asynchrone puis obtenir de retourner une tâche à la place comme async Task . J'ai trouvé que cela a réglé le problème pour moi.

4
répondu cookiemonster 2016-07-29 06:23:33

essayez de construire tous les projets comme MSIL (N'importe quel CPU) au lieu de x86/x64. Travaillé pour moi étrangement

3
répondu Alfons 2015-09-21 15:26:07

alors que la solution D'AndyG fonctionne, une solution plus durable pourrait être de mettre la variable D'environnement PreferredToolArchitecture à "x64", soit par:

Comment faire de Visual Studio utiliser le natif amd64 toolchain

ou par:

  • Panneau de configuration / système et Sécurité|Système / Paramètres de système avancés / Variables D'environnement
  • Preferred Toolarchitecture = x64
  • DefaultToolArchitecture = Native64Bit
  • PROCESSOR_ARCHITECTURE = x64
  • ProcessorArchitecture = x64
3
répondu Kevin Johnsrude 2017-05-23 12:10:33

je faisais face au même problème et je me suis souvenu, encore une fois (cette situation s'est produite avant), que le choix de" plateforme mixte " sur le menu de la plateforme de solutions fonctionne, ainsi que les autres réponses.

2
répondu Jeferson 2015-04-24 21:01:14

j'ai réussi à ajouter le mien comme

public static void TestMethod1(){}

a commencé à fonctionner une fois que j'ai enlevé les parasites....

2
répondu fox 2015-12-05 11:07:55

allez à Nuget package manager et téléchargez Nunit adaptateur comme suit. enter image description here

2
répondu Debendra Dash 2016-12-28 15:21:01

allez dans le menu Projet > Gestionnaire de Configuration vérifiez que la plate-forme de votre projet d'essai correspond au reste du projet et qu'elle est cochée pour construire puis reconstruire.

1
répondu user5224229 2015-08-13 15:31:00

vient de tomber sur ceci aussi bien que je n'ai pas vu un cas similaire qui était similaire au mien.

dans le fichier .csproj de mon projet d'essai, la protection des renseignements personnels de référence de NUnit était fixée à False :

<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
  <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
  <Private>False</Private>
</Reference>

après que j'ai mis <Private> à True il a fonctionné.

1
répondu Kevin Giszewski 2015-11-02 16:06:32

Vous avez juste besoin d'installer ce paquet:

NUnit TestAdapter NUnit TestAdapter

1
répondu Sandy_Vu 2016-01-26 03:25:45

j'ai eu exactement le même problème.

c'était en raison de la version incompatible de NUnit que j'avais ajouté à mon projet (3.2.0) et L'Adaptateur de Test que j'avais installé (2.0.0).

pour corriger, utiliser" Outils > Extensions et mises à jour " et rechercher L'Adaptateur de test NUnit3, il a découvert mes tests après cela.

Cheers

1
répondu Francis Smith 2016-03-15 14:30:47

disons simplement pour le bien de l'argument que vous devez utiliser l'architecture X64 sur votre projet de test afin que les dépendances soient construites correctement (comme dans mon cas). Vous devrez peut-être modifier l'Architecture de votre processeur par défaut dans le menu Test--paramètres de Test . Le paramétrage de ce paramètre à X64 a permis à mon explorateur de test de trouver mes tests en utilisant Microsoft.VisualStudio.TestTools.UnitTesting.

1
répondu Dominic Hartjes 2016-07-22 18:28:34

Désolé d'ajouter à la longue liste, mais j'ai eu un problème complètement différent. Tout d'abord, je voudrais mentionner que j'ai découvert mon problème en cliquant sur "exécuter tout" dans L'Explorateur de Test, puis en regardant la fenêtre de sortie construire dans Visual Studio. Vous devez le surveiller activement, car après le message disparaît.

quant à la question, il semble que pendant la numérisation des tests, la DLL est chargée et ses types de test sont énumérés. Cela provoque les références à être chargé et si une défaillance se produit au cours de ce processus, les tests ne seront pas affichées dans l'explorateur. J'avais deux problèmes empêchant le test DLL d'être chargé avec succès:

  • il restait encore une redirection obligatoire dans le fichier de configuration (redirection vers une version plus basse que celle référencée dans le projet test).
  • référence d'assemblage contradictoire (références de 2e Niveau ne pouvant pas être chargées). AsmSpy est btw un grand outil pour chasser pour ceux-ci.
1
répondu Martijn Evens 2016-08-23 14:34:36

si vous chargez une solution Visual Studio (VS communauté 2015 dans mon cas) à partir d'une solution network share ou My Documents directory qui fait partie d'une part , vous allez avoir des problèmes. Je l'ai résolu en déplaçant la solution et ses projets sous-jacents dans un dossier local.

1
répondu Ton Snoei 2016-11-17 14:13:11

après avoir passé 2 jours... rien de ce qui précède n'a fonctionné pour moi. La seule" solution " était: allez à 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

1
répondu curiousBoy 2017-06-18 20:36:50

je suis tombé sur le même problème. Et a enquêté et a constaté que les dll n'ont pas été construits, et les mettre dans le bon dossier. dès que j'ai changé ma configuration ils sont apparus. - les projets construisent des options, quel dossier doit être utilisé? - la configuration de construction de l'entrée de menu de construction, ils doivent être vérifiés.

qui l'a réparé pour moi.

0
répondu kfn 2015-09-04 07:10:26

pour le Visual Studio 2013.5, la suppression du répertoire \TestResults dans la solution a aidé. Visual Studio a corrompu le fichier mdf dans lequel il stocke les tests découverts, empêchant ainsi la découverte de tests unitaires.

0
répondu MartijnK 2015-09-15 08:06:34

assurez-vous que tous vos projets fonctionnent avec la même configuration. Sous Propriétés de votre projet = > Debug = > plate-forme dans la liste déroulante choisissez la plate-forme appropriée (pour moi c'était "N'importe quel CPU") comme déterminé à vos autres projets.

0
répondu Roni 2015-10-15 08:42:35
  • je sais que les tests unitaires ne sont pas trouvés si la solution n'est pas construite, donc c'est quelque chose à essayer (construire la solution), mais cette solution est comme le service d'assistance demandant si votre ordinateur est branché...
  • après une reconstruction propre n'a pas réglé le problème pour moi, l'exécution d'un lot complet construire a réglé.
0
répondu amalgamate 2015-11-18 21:13:05

avait le même problème; les essais ont soudainement cessé d'être découverts.

L'Adaptateur D'essai

Nunit avait été désactivé d'une façon ou d'une autre. En cliquant sur Activer dans le gestionnaire d'extension, Je l'ai corrigé.

0
répondu HeatherD 2015-12-28 16:06:31

pour obtenir des tests à afficher dans la fenêtre de L'Explorateur de tests, J'ai dû installer NUnit3 test adaptateur 3.0 qui n'était pas disponible dans le Gestionnaire de paquets.

Téléchargé de https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d

0
répondu Mikal Madsen 2016-02-21 18:26:48

j'ai eu le même problème jusqu'à ce que je réalise que j'ai fait une erreur de coupe/pâte et ai laissé [Test Method] avant le test.

0
répondu forforf 2016-03-01 15:10:53