Visual Studio 2013 ne pas découvrir les tests unitaires
J'ai une solution simple dans visual studio 2013 qui se compose par un projet web, d'une bibliothèque de projet et un projet de tests unitaires. Quand j'ai ouvert la solution et essayez d'exécuter les tests unitaires, ils ne sont pas de découvrir par visual studio. Pour exécuter le test, j'ai essayer d'aller sur le menu et choisissez Test -> Exécuter -> Exécuter tous les tests ou en ouvrant le test de la fenêtre de l'explorateur. Par ces méthodes visual studio n'est pas de découvrir tous les tests dans la solution.
La création de la première d'une simple unité de tests de projet et d'essayer de lancer le test, visual studio savoir découvrir le test et je peux l'exécuter. Alors, si j'ouvre mon précédent de la solution visual studio découvre tous les tests. J'essaie de sauver ma solution, mais la fermeture et la réouverture, sans créer un projet de test d'unité première, visual studio ne trouve pas les tests à nouveau. C'est un très étrange comportement que je ne sais pas pourquoi ce qui se passe.
J'ai l'habitude de travailler seul dans ce projet a été l'utilisation du contrôle de code source git intégré à visual studio team foundation. Le problème de visual studio pas découvrir les tests unitaires commencer lorsqu'un nouvel élément est venu pour le 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 toujours été découvert par visual studio.
Pour la création de l'unité de test, j'ai utilisé la dll Microsoft.VisualStudio.QualityTools.UnitTestFramework. Ma version de visual studio: Microsoft Visual Studio Express 2013 pour la Version Web 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);
}
}
- Ces Asynchrone basée sur des tests Unitaires?
- Pas sûr de ce que la question a été, mais l'exécution en tant qu'administrateur résolu le problème pour moi.
- Tous de synchronisation basé sur des tests unitaires
- Avez-vous essayé un test externe-coureur (comme ReSharpers ou NCrunch)? Peut-être que votre installation est buggé (donc réinstaller VS)
- J'ai déjà essayer de réinstaller visual studio et de faire toutes les mises à jour mais le problème maintient. Je vais essayer un outil externe, mais je pense que ça va bien fonctionner. Le problème semble être dans visual studio.
- Avez-vous nettoyer votre solution et tout reconstruire? Peut-être la reconstruction de tous les projets à l'intérieur séparément? Obtenez-vous une sortie dans les Tests et Construire le volet de sortie?
- J'essaie d'installer l'outil externe NCrunch. Je pense que parce que je suis en utilisant VSExpress version que j'ai installer cet outil manuellement. Après je lance la commande: VWDExpress.exe /setup /nosetupvstemplates pour installer l'outil miraculeusement les tests commencent à apparaître dans VS. La fermeture d'une réouverture de la solution, les tests de disparaître de nouveau. Drôle qu'après l'installation de l'outil n'est pas le résultat.
- J'ai déjà essayer de nettoyer ma solution et tout reconstruire sans résultats. La reconstruction de tous les projets ne fonctionne pas. Lors de la construction des projets que je reçois le message suivant: ------ Découvrez le test a commencé ------ Le système ne peut pas trouver le fichier spécifié ========== Découvrez le test terminé: 0 trouvés (0:00:00,2675781) ==========
- Aucun de ces résolu le problème pour moi 🙁 Quelle catastrophe. J'ai renoncé NUnit et je suis en s'appuyant sur UnitTestFramework - bizarrement le problème inverse de l'OP
- De même pour moi @Adam. J'utilise connue Xunit.
- De 0 vote, Si vous chargez un Visual Studio (VS 2015 de la Communauté dans mon cas) de la solution à partir d'un partage réseau ou un répertoire Mes Documents qui font partie d'une action, vous obtiendrez dans ce trouble.
- pour moi, il n'a pas de travail parce que mon projet est situé sur un lecteur réseau, le déplacer vers un dossier local fixe, il
Vous devez vous connecter pour publier un commentaire.
Certaines choses que j'ai remarqué que j'ai à faire, de temps en temps pour obtenir des tests pour montrer correctement.
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 à venir. Certainement exécuté VS en tant qu'administrateur dans ce cas.
Si votre solution est de 64 bits, assurez-vous que Test > Paramètres de Test > les valeurs par Défaut de l'Architecture du Processeur est configuré pour x64. Parfois, il est défini pour x86. Ensemble pour x64, puis de reconstruire.
Parfois juste de redémarrer Visual Studio fait le tour car le test explorer démarre à nouveau.
N'oubliez pas de construire le projet de test/solution. (Si vous voulez qu'il se construit avec le reste des projets, cliquez-droit sur votre solution > Propriétés > Propriétés de Configuration > Configuration > cocher la case "Construire" de votre projet de test)
Assurer les tests sont dans un
public
section de votre classe de test"Microsoft.DotNet.InternalAbstractions": "1.0.1-beta-003206"
Si vous utilisez NUnit, assurez-vous de télécharger NUnit Adaptateur.
Allez dans Outils → Extensions et les Mises à jour... → en Ligne → recherche pour "NUnit Adaptateur de Test".
Assurez-vous que votre classe de test est
public
de sorte qu'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'affirmations ou vous n'êtes pas la décoration de la tester avec un
[TestMethod]
, un test peut ne pas être reconnu.2 choses:
1) Async tests unitaires loi drôle, au mieux, et rien du tout au pire. Jetez un oeil à cet article par Stephen Cleary et garder à partir de là si ça t'intéresse.
2) Si vous utilisez NUnit et vous rencontrez les mêmes problèmes, gardez à l'esprit que c'est
[TestCase]
pour Nunit, au lieu de[TestMethod]
D'avoir dit ci-dessus, voici un l'article j'ai posté sur le projet de code, avec les deux
MSTest
&NUnit
, dans le cas où vous souhaitez lui donner un spin et assurez-vous de ne rien manquer.using Microsoft.VisualStudio.TestTools.UnitTesting;
static
. Suppression de l'indicateur et de la reconstruction, le projet a immédiatement fait apparaître dans l'Explorateur de tests."MSTest.TestAdapter" version="1.1.8-rc"
et"MSTest.TestFramework" version="1.0.8-rc"
.J'ai eu le même problème mais aucune des autres solutions n'a fonctionné. S'avère que j'ai été en utilisant le NUnit 3-cadre avec les 2 adaptateur.
Si vous utilisez NUnit 3, allez à Extensions et les Mises à jour et installer le NUnit3 Adaptateur de Test.
XUnit les utilisateurs peuvent remarquer Test de la fenêtre de l'Explorateur de plus les listes de tous les tests. Pour faire des tests détectable à nouveau essayer de cette astuce importante, a mis en évidence ci-dessous.
Je vais avoir ce problème de temps en temps. Ce qui fonctionne pour moi est à l'arrêt Visual Studio et aller au dossier:
et de supprimer le contenu.
Une fois que vous ouvrez Visual Studio et de la charge de votre projet de nouveau l'Explorateur de tests doit contenir le dos de vos tests
Pour l'avenir googlers j'ai eu une rare scénario qui en est l'origine.
Sur ma base de test de classe que j'avais une propriété nommée TestContext. Cette interféré avec MSTest réservés TestContext propriété à l'origine de tous mes tests pour être caché VS/Resharper, sauf un (qui n'hérite pas de la base).
public
.pour moi, c'était une " modification de la solution de configuration de Débogage (à la place de la Libération).
Mon problème était que mon unité de la méthode d'essai n'était pas vide, et il recevait des paramètres.
J'ai trouvé que l'unité de méthodes d'essai marqué comme
async void
ne sont pas découverts par le VS de l'Explorateur de tests. 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'avoir une méthode de test pour exécuter de manière asynchrone puis obtenir le retour d'une Tâche à la place commeasync Task
.J'ai trouvé que cela a réglé le problème pour moi.
Essayez de construire tous les projets que MSIL (CPU) au lieu de x86/x64. A travaillé pour moi étrangement
Tout AndyG de la solution, une solution plus durable pourrait être de fixer le PreferredToolArchitecture variable d'environnement "x64", soit par:
Comment faire de Visual Studio utiliser le natif de la chaîne d'amd64
ou par:
J'ai été confrontée au même problème et je l'ai rappelé, à nouveau (cette situation qui s'est passé avant), que la sélection de "Mixte" sur la plate-forme de solutions de menus travaux, ainsi que d'autres réponses.
Que j'avais réussi à ajouter de la mine comme
commencé à travailler une fois que j'ai enlevé statique....
Aller à gestionnaire de package Nuget et télécharger Nunit Adaptateur à suivre.
aller dans le menu projet > Gestionnaire de Configuration de vérifier votre projet de test de la plateforme correspond le reste du projet et de l'est de vérifier pour construire ensuite reconstruire.
Viens de tomber sur ce ainsi que je n'ai pas vu un cas similaire qui a été similaire à la mienne.
Dans le
.csproj
fichier de mon projet de test NUnit de référence de la vie privée a été mis àFalse
:Après j'ai mis
<Private>
àTrue
il a travaillé.Vous avez juste besoin d'installer ce paquet:
NUnit TestAdapter
Pour obtenir des tests de montrer dans le Test de la Fenêtre de l'Explorateur, j'ai dû installer NUnit3 Adaptateur de Test 3.0, ce qui n'était pas disponible dans le Gestionnaire de paquets.
Téléchargé à partir de https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d
J'ai eu exactement le même problème.
C'était dû à une incompatibilité de version de NUnit j'avais ajouté à mon projet (3.2.0) et l'Adaptateur de Test que j'avais installé (2.0.0).
À fixer, utiliser des "Outils > Extensions et les Mises à jour" et la recherche pour NUnit3 Adaptateur de Test, il a découvert mes tests après que.
Acclamations
Disons pour la commodité du raisonnement que vous avez besoin d'utiliser une architecture X64 sur votre projet de test pour les dépendances pour compiler correctement (comme dans mon cas). Vous devrez peut-être modifier vos paramètres par Défaut de l'Architecture du Processeur en vertu de la Test--Test des Paramètres de menu. Cette définition X64 permis à mon explorateur de tests pour trouver mes tests à l'aide de Microsoft.VisualStudio.TestTools.UnitTesting.
Désolé pour ajouter à la longue liste, mais j'ai eu un tout un autre problème.
Tout d'abord, je tiens à mentionner que j'ai découvert ma question en cliquant sur "Exécuter Tous" dans l'Explorateur de tests et de voir ensuite la construction de la fenêtre de sortie de Visual Studio. Vous devez la regarder, comme par la suite le message disparaît.
Comme pour la question, il semble, comme lors de 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'ai eu deux problèmes qui empêchent le test, DLL pour être chargé avec succès:
Si vous chargez un Visual Studio (VS 2015 de la Communauté dans mon cas) de la solution à partir d'un partage réseau ou répertoire Mes Documents qui font partie d'une action, vous obtiendrez dans ce trouble. Je l'ai résolu en déplaçant la solution et de ses projets sous-jacents à un dossier local.
Après avoir passé 2 jours... aucun des ci-dessus a fonctionné pour moi. La seule "solution" est: Allez à propriétés de projet -> Onglet créer. Puis cliquez sur le bouton Avancé sur le coin inférieur droit de la fenêtre. Changement de "Debug Info:" à "plein" et cliquez sur OK.
Voici les captures d'écran:
Je suis tombé sur le même problème.
Et d'une enquête et a constaté que la dll n'étaient pas construire,
et les mettre dans le bon dossier. dès que j'ai changé ma configuration
ils sont apparus.
- les Projets de build options, ce dossier doit être utilisé?
- la génération entrée dans le menu de configuration de la compilation, ils doivent être vérifiés.
qu'il fixe pour moi.
Pour Visual Studio 2013.5, la compensation de la \TestResults répertoire dans la solution a aidé. Visual Studio corrompu le fichier mdf dans laquelle il stocke les découvertes tests, empêchant ainsi la découverte de tests unitaires.
Assurez-vous que votre tous les projets sont en cours d'exécution avec la même configuration.
En vertu des Propriétés de votre projet => Debug => Plate-forme dans la liste déroulante du choix de la plate-forme (pour moi c'était "any CPU") tel que déterminé à vos autres projets.
Eu le même problème, les tests soudainement cessé d'être découvert.
Nunit Adaptateur de Test a devenu invalide en quelque sorte. En cliquant sur activer dans le gestionnaire d'extension, il fixe pour moi.
J'ai eu le même problème jusqu'à ce que j'ai réalisé, j'ai fait un couper/coller de l'erreur et laissé
[Test Method]
avant le test.Dans mon cas, le problème était que mon
class
a été marqué commeabstract
.Il suffit de retirer le
abstract
mot-clé.Une autre solution:
Ouvrez une invite de commande, tapez set, et de vérifier si PROCESSOR_ARCHITECTURE est réglé correctement, le changement de x86 ou AMD64 si nécessaire.
source: https://connect.microsoft.com/VisualStudio/feedback/details/873170/vs2012-vstest-console-exe-error-incompatible-target-platform-settings-x86-with-system-architecture-arm-occurs-when-processor-architecture-is-not-set
J'ai eu le même problème avec mes tests sur TFS 2015.
Le problème que j'avais était mon test n'a pas montré de plus. l'adaptateur de test n'a pas pu trouver des tests.
J'ai supprimé toutes les références pour Microsoft.VisualStudio.QualityTools.UnitTestFramework et maintenant, ils manifestent une fois de plus. J'espère que ma réponse aider quelqu'un
J'ai eu un problème similaire avec Visual Studio 2015. Dès que j'ai fait une
async Task
unité de test de Visual Studio commencez à avoir des problèmes de découvrir, de trouver la source, et il ne serait pas me permettre de le déboguer.Il s'avère qu'il y a un bug avec PostSharp qui provoque ce comportement, et le projet de test j'ai été en utilisant avaient PostSharp activé.
La solution dans mon cas était de désactiver PostSharp pour le projet de test d'unité, en mettant le suivant dans le
<PropertyGroup>
élément au début de lacsproj
fichier de projet:<SkipPostSharp>True</SkipPostSharp>
Dans mon cas, j'ai mis à jour NUnit de 2.X à 3.X après que le pilote a arrêté d'aller dans [SetUp]. J'ai essayé d'installer NUnit 3 adaptateurs de NuGet, mais il n'a pas aidé. Puis j'ai désinstallé ma version alors en vigueur sur TestDriven (3.8) et installé 3.10 au lieu de cela. Il a commencé à travailler (encore une fois).
Assurez-vous que le projet est marqué comme projet de test. Vous pouvez le faire en ajoutant le ci-dessous xml à la csproj fichier de projet.
Dans mon cas, j'ai dû mettre à jour deux Packages NuGet.
- MSTest.TestAdapter
- MSTest.TestFramework