web-dev-qa-db-fra.com

Visual Studio - impossible de déboguer les tests

Je ne suis pas sûr de ce que j'ai fait, mais tout à coup, mon Visual Studio 2012 ne déboguera aucun test.

Si je sélectionne un test dans Test Explorer et que je le lance, il le signale simplement dans la fenêtre Test Output:

> ------ Discover test started ------
> ========== Discover test finished: 29 found (0:00:01.3371755) ==========
> ------ Run test started ------ Process with an Id of -1 is not running.
> ========== Run test finished: 0 run (0:00:01.4711861) ==========

qu'est ce que ça veut dire?! Après avoir effectué cela plusieurs fois, l'erreur est devenue:

The Operation was Cancelled

ce que je n'ai pas fait.

Cela se fait à chaque test de la liste.

cependant, je peux exécuter les tests sans problème, et ils réussissent ... mais je ne peux pas déboguer les tests.

Qu'ai-je pu faire? Je ne suis pas allé activement dans les paramètres et ne changez rien, peut-être un clic parasite quelque part, mais où?

37
SelAromDotNet

J'ai rencontré cela aujourd'hui. J'ai essayé de fermer la solution mais cela n'a pas fonctionné. Mon erreur, je mets ma solution en mode de libération au lieu du mode débogage. Je l'ai mis à Debug puis cela a fonctionné comme prévu.

J'utilise VS 2015 Professional.

35
Tom Mabaquiao

J'obtenais le même résultat après la mise à niveau d'un projet de test de VS 2010 vers VS 2012 Ultimate Update 3. Le message était affiché dans la fenêtre Sortie de test après l'utilisation de la commande MSTest vers Debug Selected Tests

J'ai essayé de déboguer des tests en utilisant la fenêtre Resharper 8 Unit Test Session. Le message dans la fenêtre de résultat était "Le test n'a pas été exécuté".

La solution qui m’a aidé était de modifier les paramètres du projet test pour permettre le débogage de code natif comme indiqué sur ce lien: Exception Uncaught levée par une méthode appelée par réflexion

Si le lien ne fonctionne pas:

  1. Allez au projet clic droit et sélectionnez les propriétés.
  2. Sélectionnez l'onglet 'Debug' à gauche.
  3. Allez à "Activer les débogueurs" en bas
  4. Cochez la case "Activer le débogage de code natif" (ou "Activer le débogage de code non géré", selon la version)

Merci à GalDude33 d’avoir posté la solution.

19
Branko

Avoir régulièrement le même problème avec Visual Studio 2012 .

Solution: fermez la solution actuelle et rouvrez-la .

Dans mon cas, fermer et réouvrir VS n'était pas nécessaire.

13
Pragmateek

Veuillez suivre les étapes ci-dessous. Ça a fonctionné pour moi

Pas.

1.Fermez vos instances de Visual Studio

2.Nettoyez les fichiers temporaires et les fichiers de prélecture.

3. Supprimez les fichiers du dossier bin du projet.

4. Redémarrez les applications.

4
swathi cv

Assurez-vous que votre projet de test fait partie des projets à construire.

  • Faites un clic droit sur votre solution dans Explorateur de solutions
  • Allez à Set StartUp Projects ..
  • Cliquez sur Propriétés de configuration et assurez-vous que votre projet test est vérifié pour la construction
2
Peter.Ombwa

J'avais un problème similaire dans VS2015 . Un seul test unitaire n'a pas pu être débogué dans mon cas. Le débogueur initialiserait un test, mais ne déboguerait pas le test lui-même, en finissant bien. Le problème était lié à l'importation de la bibliothèque Newtonsoft.Json par Resharper sans activer le package NuGet pour le projet. (J'ai utilisé Alt + Entrée pour importer automatiquement la bibliothèque)

Solution devait installer le package Newtonsoft.Json NuGet pour le projet test.

2
user2957464

Tests asynchrones - Les symptômes de mon scénario étaient similaires en ce sens que mon test n’exécutait pas et que mon point d’arrêt n’était pas touché. L'explorateur de tests de Visual Studio pouvait voir le test, mais je ne pouvais pas le déboguer. L'exécuter l'a fait comme s'il ne pouvait pas être trouvé même s'il pouvait être vu dans l'Explorateur de tests.

Au cas où cela aiderait quelqu'un d'autre, mon problème était aussi simple que devoir changer la signature de la méthode de test de "async void " à "async Task ".

Faire ceci:

[TestMethod]
public async Task CorrectlyFailingTest()
{
  await SystemUnderTest.FailAsync();
}

Pas ça:

[TestMethod]
public async void CorrectlyFailingTest()
{
  await SystemUnderTest.FailAsync();
}
1
Paul Schroeder

Lorsque j'utilise Visual Studio 2012, pour certaines raisons, si j'utilise le raccourci ctrl R + T, le point d'arrêt sera atteint. Mais si je clique sur "Run All" ou "Run Selected Test" sur Test Explorer, ce ne sera pas le cas. Visual Studio 2013 fonctionne bien dans les deux sens.

1
paibamboo

Pour moi, mettre à jour le paquet Nuget de MSTest.TestAdapter et MSTest.TestFramework vers la dernière version résout le problème.

1
Youngjae

Jetez un coup d’œil au lien suivant, il ya une mise à jour qui corrige ce problème . Visual studio 2012 update 3.

http://social.msdn.Microsoft.com/Forums/vstudio/en-US/e96f53c7-dc8c-4274-8756-eb745de701e8/visual-studio-2012-update-3-cant-debug-unit-test

1
user2682517

Dans mon cas, le point d'arrêt ne peut pas être atteint s'il y a un ou des avertissements de construction. Je peux le vérifier en basculant la ligne de code avec avertissement. C'était une chaîne inutilisée de longueur 66000 . (Avertissement CS0219 La variable 'XXXXXXX' est affectée mais sa valeur n'est jamais utilisée)

Je suppose que le compilateur a supprimé cette ligne et que le mappage des symboles a échoué?

0
Yiping

Dans mon cas, mes symboles n'étaient pas chargés.

Je devais aller dans Outils -> Options -> Débogage -> et sélectionner "Charger tous les modules sauf exclus" pour que les points d'arrêt soient touchés.

 enter image description here

0
pushkin

Solution: Sélectionnez "Tests unitaires de débogage" ou "Exécuter les tests unitaires" au lieu de "Tests de débogage" ou "Exécuter les tests".

0
Ravi Kant Shivhare

Frapper "Exécuter les tests" ne déclenchera pas les points d'arrêt. 

Pour déboguer votre code et vous arrêter à un point d'arrêt dans un test:

Clic droit> tests de débogage

ou

Onglet "Test"> Débogage> Tous les tests

0
Chris Mathew

Vérifiez que le projet test et le projet principal utilisent la même version de framework.

 enter image description here

0
Marco Staffoli

Pour moi, le problème était qu'après la mise à niveau vers 2017 v15.5.7, les propriétés de ma solution avaient été modifiées d'une manière ou d'une autre. Ce qui fait que je pouvais exécuter le test une fois en mode débogage, mais pas encore, à moins que je ne redémarre VS, alors cela fonctionnerait à nouveau, une fois. Une fois que je l'ai remis, cela a encore fonctionné. Le paramètre était et devrait être pour moi Solution> Propriétés communes> Projet de démarrage> Plusieurs projets de démarrage. D'une manière ou d'une autre, il a été configuré sur "Projet de démarrage unique".

0
Shawn Smith

À partir de Visual Studio 2017 (15.8), cela peut se produire lorsque la fonctionnalité de test des unités réelles est active. Il n'y a pas de message clair dans la sortie; il commence juste et arrête sans débogage. La solution arrête les tests en direct afin que vous puissiez ensuite déboguer le test normalement.

0

Pour moi, ce qui suit a fonctionné:

  1. Fermer la solution
  2. Fermer Visual Studio 
  3. Supprimez le contenu de "C:\Windows\Microsoft .NET\Framework64\v4.0.30319\Temporary ASP.NET Files \" 
  4. Supprimez le contenu de "C:\Windows\Microsoft .NET\Framework64\v2.0.50727\Temporary ASP.NET Files \"
  5. Ouvrir Visual Studio
  6. Solution ouverte
0
wh1tet1p

Pour moi, le problème était que mon fichier de configuration ( app.config ) ne contenait pas le fichier de transformation de débogage ( app.Debug.config ), une fois que je l’ai ajouté, je recommence à travailler/à déboguer.

0
Jaider

Les références de problème app.config peuvent provoquer involontairement le débogueur pour ne pas attacher et les points d'arrêt ne pas être touchés lors du débogage de projets tests. Ce fichier a peut-être été mis à jour par des packages ou est périmé.

Solution: en général, je copie, puis supprime toutes les dépendances sous la balise d'exécution du fichier app.config du projet test. Le débogage commence généralement après cela, mais il peut être nécessaire de rajouter certaines références si les assemblys sont introuvables.

0
mhapps

Cela pourrait ne pas être une solution spécifique à votre problème, mais je ne pouvais pas non plus déboguer un test que j'avais écrit. Il s'avère que la solution était assez simple:

Modifiez la méthode de private à public. Je ne sais pas pourquoi le débogage n'est pas possible dans les méthodes privées, mais l'implémentation de l'attribut [Test] y apporte probablement quelque chose. J'espère que cela aidera toute personne aux prises avec un problème similaire à l'avenir!

0
Andreas Forslöw

Je ne pouvais pas attacher à mon débogueur parce qu'il cherchait un fichier de paramètres de test.
S'il s'agit de votre problème, allez à Test-> Paramètres de test-> Désélectionnez l'option Local.testsettings

 Unit Test Debugging Fix

0
Matthew Peterson