web-dev-qa-db-fra.com

comment déboguer avec xUnit?

J'apprends xUnit et jusqu'à présent, j'ai trouvé que c'était un outil des plus utiles. Cela me fait repenser certaines de mes tactiques de codage à TDD.

Cependant, j'ai rencontré un problème intéressant. Mon cas de test échoue. Aucune préoccupation réelle, mais comment puis-je la déboguer?

Plus précisément, mon scénario de test échoue en raison d'une erreur "out of index" ou d'une erreur similaire. Il ne manque pas à la déclaration d'assertion. Ce dont j'ai besoin maintenant, c'est d'un moyen d'exécuter le scénario de test avec le débogueur Visual Studio actif afin de pouvoir voir l'état des différentes variables.

Je ne vais pas poster de code, car cette situation va sûrement se reproduire. Quelqu'un at-il une idée de comment déboguer le cas de test lui-même?

Prèsque oublié! J'utilise,

  • Visual Studio 2010 Ultimate (licence Dreamspark)
  • xUnit 1.9

Mon flux de travail implique l'utilisation du programme d'exécution de l'interface graphique xUnit pour exécuter les tests.

Si ce que je demande est impossible, quelqu'un peut-il suggérer une suite de tests alternative que je pourrais utiliser et qui a ce que je veux?

29
chronodekar

Je n'ai pas testé cela, mais vous devriez pouvoir attacher Visual Studio à l'interface graphique xUnit et déboguer à partir de là.

Dans le menu Déboguer, sélectionnez "attacher au processus", localisez le nom de l'exécutable dans la liste et cliquez sur attacher. Définissez les points d'arrêt dans le test unitaire comme requis et exécutez le test à partir de l'interface graphique. Le point d'arrêt doit être touché comme prévu.

8
Dave

Dans VS2015 et les versions ultérieures, installez le package xunit.runner.visualstudio NuGet. Le débogage est aussi simple qu’un clic droit sur le test dans la fenêtre de test Explorer. (Test -> Windows -> TestExplorer si vous ne le voyez pas).

 enter image description here

44
bbsimonbb

J'ai échoué dans la mise en œuvre de tout ce qui précède, mais ce qui suit a fonctionné pour moi: Avant les lignes sur lesquelles vous souhaitez déboguer, ajoutez la ligne suivante (puis exécutez le test):

        System.Diagnostics.Debugger.Launch();

L'inconvénient est qu'il lancera une autre instance de VS :).

À votre santé!

8
Laurentiu Ilici

Ce qui suit fonctionnera dans VS.NET et dans SharpDevelop.

Ouvrez les propriétés du projet de test et allez dans l’onglet Debug:

  • Sous "Action de démarrage", définissez "Démarrer le programme externe" sur l'exécutable du programme d'exécution de l'unité xUnit.

  • Sous "Options de démarrage", définissez "Arguments de ligne de commande" sur le nom de la DLL de débogage de votre projet.

  • Définissez également "Répertoire de travail" dans le répertoire "bin\Debug \" du projet.

Ensuite, sélectionnez Débogage> Exécuter ou appuyez sur F5 pour exécuter votre test en mode débogage. Les points d'arrêt seront touchés.

L’avantage de procéder de cette manière au débogage est que vous n’aurez pas à vous connecter à l’interface graphique xUnit à chaque fois, il vous suffit d’exécuter votre projet de test.

6
Boggin

Dans Visual Studio 2017, assurez-vous que la configuration de la solution est en mode 'Débogage'. En mode 'Release', il ne s'agit pas d'un débogage.

3
Megha

Si vous avez resharper et que l'extension X-unit contrib est installée (vivement recommandé!), Cliquez avec le bouton droit de la souris sur la classe dans visual studio et cliquez sur "tests d'unité de débogage".

Simple!

2
Adam Diament
  1. définir un point de rupture à l'intérieur de votre méthode.
  2. dans la barre de menus de Visual Studio, cliquez sur Test.
  3. à partir de Debug, cliquez sur Selected Test ou All Test.
0
Mohammad Reza Mrg