visual - unit test c#




Visual Studio 2013 ne détecte pas les tests unitaires (20)

Allez au gestionnaire de paquets Nuget et téléchargez l'adaptateur Nunit comme suit.

J'ai une solution simple dans Visual Studio 2013 qui est composée d'un projet web, d'un projet de bibliothèque et d'un projet de test unitaire. Lorsque j'ouvre la solution et essaie d'exécuter les tests unitaires, ils ne sont pas détectés par Visual Studio. Pour lancer les tests, j'essaie d'aller dans le menu et de choisir Test -> Exécuter -> Exécuter tous les tests ou en ouvrant la fenêtre de l'explorateur de test. Par ceux-ci aux méthodes Visual Studio ne découvre aucun test dans la solution.

Créer d'abord un simple projet de tests unitaires et essayer de faire le test, Visual Studio sait découvrir le test et je peux l'exécuter. Ensuite, si j'ouvre ma solution précédente, Visual Studio découvre maintenant tous les tests. J'essaie de sauvegarder ma solution mais en la refermant et en la réouvrant, sans créer d'abord un projet de test unitaire, le studio visuel ne retrouve plus les tests. C'est un comportement très étrange que je ne sais pas pourquoi cela se passe.

Je travaillais seul dans ce projet qui utilisait le git de contrôle de source intégré à la fondation de l'équipe Visual Studio. Le problème de studio visuel ne découvre pas les tests unitaires commencent quand un nouvel élément est venu au projet et quand j'ai besoin de recréer la solution à travers le contrôle de la source en ligne. Avant cela, tous les tests ont toujours été découverts par Visual Studio.

Pour la création des tests unitaires, j'utilise le dll Microsoft.VisualStudio.QualityTools.UnitTestFramework. Ma version de Visual Studio est: Microsoft Visual Studio Express 2013 pour Web Version 12.0.30723.00 Update 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); 
    } 
}

Après avoir passé 2 jours ... rien de tout cela n'a fonctionné pour moi. La seule "solution" était: Allez dans Propriétés du projet -> Onglet Construire. Cliquez ensuite sur le bouton Avancé dans le coin inférieur droit du volet. Changez "Info de débogage" en "plein" et cliquez sur OK.

Voici les captures d'écran:


Assurez-vous que votre classe de test est public afin qu'elle puisse être trouvée. Et si vous faites référence à une autre classe, assurez-vous de la même chose.

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

2 choses supplémentaires: 1) Les tests unitaires asynchrones agissent au mieux, et pas du tout au pire. Jetez un coup d'œil à cet article de Stephen Cleary et tenez-vous 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]

Après avoir dit ce qui précède, voici un article que j'ai posté sur le projet de code, avec MSTest et NUnit , au cas où vous voulez faire un tour et assurez-vous de ne rien manquer.


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

Nunit Test Adapter était devenu désactivé en quelque sorte. En cliquant sur Activer dans le gestionnaire d'extension, je l'ai corrigé pour moi.


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

  1. Si votre solution se trouve dans un lecteur protégé dont vous avez besoin d'un accès administrateur pour lire / écrire, une partie seulement des tests est parfois effectuée. Définit certainement VS en tant qu'administrateur dans ce cas.

  2. Si votre solution est 64 bits, assurez-vous que Test> Paramètres de test> Architecture du processeur par défaut est défini sur x64. Parfois, il est défini sur x86. Réglez-le sur x64, puis reconstruisez.

  3. Parfois, redémarrer Visual Studio suffit car l'explorateur de test redémarre.

  4. Ne pas oublier de construire réellement le projet / la solution de test. (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> cochez la case "Construire" pour votre projet de test)

  5. Assurez-vous que les tests sont dans une section public de votre classe de test


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 de construction dans Visual Studio. Vous devez le regarder activement, car ensuite le message disparaît.

En ce qui concerne le problème, il semble que pendant l'analyse des tests, la DLL est chargée et ses types de test sont énumérés. Cela provoque le chargement des références et si une erreur se produit au cours de ce processus, les tests ne seront pas affichés dans l'explorateur. Deux problèmes empêchent le chargement réussi de la DLL de test:

  • Il y avait encore une redirection de liaison restante dans le fichier de configuration (redirection vers une version inférieure de la version NHiberate par rapport à ce qui était référencé dans le projet de test).
  • Une référence d'assembly conflictuelle (les références de second niveau ne pouvant pas être chargées). AsmSpy est un excellent outil pour chasser ceux-ci.

Essayez de construire tous les projets comme MSIL (Any CPU) au lieu de x86 / x64. A travaillé pour moi étrangement


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

%LocalAppData%\Microsoft\VisualStudio\12.0\ComponentModelCache

et supprimez-le.

Une fois que vous ouvrez Visual Studio et chargez à nouveau votre projet, l'Explorateur de test doit contenir vos tests.


J'ai eu le même problème jusqu'à ce que je réalise que j'ai fait une erreur couper / coller et que j'ai laissé [Test Method] avant le test.


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

Si vous utilisez NUnit 3, accédez à Extensions and Updates et installez l'adaptateur de test NUnit3.


J'avais réussi à ajouter le mien

public static void TestMethod1(){}

commencé à travailler une fois que j'ai enlevé statique ....


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


Je suis tombé sur le même problème. Et enquêté et a constaté que la DLL ne sont pas construits, et mis dans le bon dossier. dès que j'ai changé ma configuration ils sont apparus. - les options de construction de projets, quel dossier devrait être utilisé? - la configuration de construction d'entrée de menu de construction, ils devraient être vérifiés.

ça l'a arrangé pour moi.


Les utilisateurs de XUnit peuvent remarquer que la fenêtre Test Explorer ne répertorie plus les tests. Pour que les tests soient à nouveau détectables, essayez cette astuce importante , mise en évidence ci-dessous.

Si vous rencontrez des problèmes lors de la découverte ou de l'exécution de tests, vous pouvez être victime d'un cache de coureur corrompu dans 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 uniquement lié à une version unique du package NuGet du programme d'exécution Visual Studio (xunit.runner.visualstudio).


Pour 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étectés, empêchant ainsi la découverte de tests unitaires.


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

Sur ma classe de test de base, j'avais une propriété appelée TestContext. Cela a interféré avec la propriété TestContext réservée de MSTest provoquant que tous mes tests soient cachés de VS / Resharper sauf un (qui n'a pas hérité de la base).


Si vous chargez une solution Visual Studio (VS 2015 Community dans mon cas) à partir d'un partage réseau ou du répertoire Mes documents faisant partie d'un partage , vous rencontrerez ce problème. Je l'ai résolu en déplaçant la solution et ses projets sous-jacents dans un dossier local.


Si vous utilisez NUnit, assurez-vous de télécharger l'adaptateur NUnit en premier.

Allez dans Outils → Extensions et mises à jour ... → En ligne → recherchez «Adaptateur de test NUnit».


aller dans le menu du projet> Configuration Manager vérifier que la plate-forme de votre projet de test correspond au reste du projet et qu'il faut cocher la case à cocher puis reconstruire.


pour moi, il changeait les 'configurations de la solution' en Debug (au lieu de Release).







visual-studio-2013