Débogage xUnit tests .NET de Base et le Code de Visual Studio
Je suis sur un Mac, en cours d'exécution .NET Core 1.0 et le Code de Visual Studio.
J'ai une console de projet et un projet de test. J'ai lancer le programme d'installation.json afin que je puisse déboguer le projet de console.
Comment puis-je configurer une configuration de lancement qui lance mes tests unitaires et attache le débogueur?
Vous devez vous connecter pour publier un commentaire.
Voir Tyler Longue réponse. Les étapes ci-dessous ne sont pas nécessaires dans les dernières versions de Code de Visual Studio 🙂
J'ai fait un référentiel à démontrer.
Tout d'abord, la seule façon que je pouvais obtenir le débogueur de frapper le test a été pour ajouter un fichier, le Programme.cs, prendre le contrôle du point d'entrée de xUnit, et ajouter manuellement le code à tester. Ce n'est pas idéal, mais j'imagine que vous n'allez pas le faire très souvent, et il est facile de retourner en arrière à la normale.
Programme.cs:
Prochain dans le cadre du projet.json ajouter les éléments suivants:
projet.json:
Cela va vous permettre de déboguer un xUnit projet de tests unitaires.
"testRunner": "xunit"
et il fonctionne, tout simplement.Si vous installez la dernière version du logiciel et de la bibliothèque, il est super facile à déboguer:
Comme vous pouvez le voir dans la capture d'écran, cliquez simplement sur "debug test" et le corriger!
dotnet test
.J'ai été en mesure d'exécuter le débogueur sur un ensemble de xUnit projet avec les actions suivantes compliqué lancer config. J'ai inspecté l'appelle le "debug" test de lien (dans @Tyler Longue réponse ci-dessus) a été prise par le C# (Omnisharp) VS extension de Code pour comprendre cela. Choses à noter: 1) vous devez fournir le absolue chemin d'accès à la dotnet programme 2) vous devez fournir le absolue chemin (c'est à dire vous ne pouvez pas utiliser
~/
ou$HOME/
) pour .nuget packages/dossiers 3) dans l'exemple ci-dessous, le nom de mon projet de test de l'espace de noms estTests
. Une fois que vous avez ce lancement config en place, vous pouvez placer des points d'arrêt(s), lancer le débogueur en utilisant cette configuration, et il devrait atteindre tous les points d'arrêt.ln -s ~/.nuget
, et puis changer/Users/jdoe
à${workspaceRoot}
-- Ce n'est pas idéal, mais c'est une configuration en une seule fois. (Aussi, n'oubliez pas de les ignorer.nuget/
dans votre VCS config!!)Tyler répondre de cliquer sur le
debug test
code de la lentille icônes est la façon la plus simple de débogage d'un seul test.Un moyen de tester tous les tests unitaires serait d'ajouter
while(!Debugger.IsAttached) Thread.Sleep(500);
à l'intérieur de l'tests. Cela permettra de faire les tests d'attendre jusqu'à ce que vous attacher un débogueur.Ceci vous permet alors de fixer le Visual Studio débogueur de Code pour l'exécution de testhost.dll. Select Simple
.NET Core Attach
et puis ledotnet testhost.dll
.