Partager via


Comment : effectuer un débogage lors de l'exécution d'un test dans une solution ASP.NET

 

Publication: juillet 2016

Vous pouvez déboguer des tests unitaires et des tests Web que vous utilisez pour tester des projets Web ASP.NET. Vous pouvez également déboguer votre code de production ASP.NET pendant qu'un test s'exécute.

Toutefois, lorsque vous testez le code ASP.NET, le code de test ne s'exécute pas de manière classique, sous le processus VSTestHost. Il s'exécute plutôt dans le processus IIS ou, si votre site Web est basé sur des fichiers, dans un processus du serveur de développement ASP.NET. Étant donné que les tests sont établis avec d'autres processus que le processus classique de test, sélectionnant l'option Déboguer les tests unitaires du menu Test ne débogue pas pendant l'exécution du test.

De la même façon, le code de production ASP.NET ne peut pas être exécuté pas à pas à moins que le débogage soit activé et que le débogueur soit joint au serveur de développement ASP.NET ou au processus IIS.

Dans chacune des procédures suivantes, vous créez un projet de site Web ASP.NET à l'aide de la boîte de dialogue Nouveau site Web. Dans cette boîte de dialogue, vous utilisez la zone de liste Emplacement pour choisir un emplacement pour le site Web. Ce choix détermine le processus auquel vous joindrez ultérieurement le débogueur, et les étapes à suivre pour le débogage pendant l'exécution d'un test dans une solution ASP.NET. Les deux options sont IIS et Serveur de développement ASP.NET.

  • Débogage pendant l'exécution sur IIS

  • Débogage pendant l'exécution sur un serveur de développement ASP.NET

Débogage pendant l'exécution sur IIS

Dans la procédure suivante, vous allez joindre le débogueur à un processus. Le nom du processus dépend du système d'exploitation utilisé.En effet, le système d'exploitation détermine la version d'IIS qui est installée.

Pour déboguer pendant l'exécution d'un test ASP.NET sur IIS

  1. Créez un projet de site Web ASP.NET que vous souhaitez tester et un test unitaire ASP.NET pour le tester.

    Lorsque vous créez ce projet de site Web, dans la boîte de dialogue Nouveau site Web, sélectionnez HTTP ou FTP comme Emplacement. Vous êtes ainsi certain que le processus hôte sera IIS.

  2. Activez le débogage dans le projet Web ASP.NET. Pour ce faire, modifiez le fichier de configuration Web du projet. Si votre projet a déjà un fichier Web.config, passez à l'étape 4. Si ce n'est pas le cas, ajoutez-en un maintenant : cliquez avec le bouton droit sur le projet de site Web dans votre solution, puis cliquez sur Ajouter un nouvel élément.

    La boîte de dialogue Ajouter un nouvel élément s'affiche.

  3. Dans la boîte de dialogue Ajouter un nouvel élément, cliquez sur Fichier de configuration Web puis cliquez sur Ajouter.

    Un fichier Web.config est ajouté à votre projet de site Web. Pour plus d'informations sur l'utilisation de fichiers web.config, consultez Comment : Activer le débogage pour les applications ASP.NET.

  4. Dans le fichier Web.config, modifiez la ligne qui lit <compilation debug="false"/> en <compilation debug="true"/>.

  5. (Facultatif) Définissez des points d'arrêt dans le test unitaire ASP.NET et dans le code de production de votre site Web.

  6. Joignez le débogueur au processus IIS. Pour ce faire, cliquez sur Déboguer puis cliquez sur Attacher au processus.

    La boîte de dialogue Attacher au processus s'affiche.

  7. Sous Processus disponibles, recherchez le nom du processus auquel vous souhaitez attacher le débogueur.

    Si le processus dont vous avez besoin n'est pas affiché, vous pouvez afficher davantage de processus en cours d'exécution. Pour ce faire, activez les cases à cocher Afficher les processus de tous les utilisateurs et Afficher les processus de toutes les sessions.

  8. Sous Processus disponibles, cliquez sur le nom du processus puis cliquez sur Attacher.

    Si le processus auquel vous devez effectuer l'attachement n'est pas en cours d'exécution, cliquez sur Annuler, puis démarrez le processus. Pour ce faire, dans l'explorateur de solutions, ouvrez le menu contextuel du projet de site Web puis choisissez Afficher dans le navigateur. À présent, cliquez sur Déboguer puis sur Attacher au processus une nouvelle fois ; le processus démarre et s'affiche sous Processus disponibles. Cliquez sur le nom de processus puis sur Attacher.

  9. Démarrez votre test.

    Pour cela, sélectionnez le test que vous souhaitez déboguer dans l'explorateur de tests unitaires puis dans le menu Test, choisissez Déboguer les tests unitaires puis Tests sélectionnés.

    Notes

    Lorsque vous exécutez des tests, vous pouvez choisir Exécuter la sélection au lieu de Déboguer la sélection.Si vous choisissez Déboguer la sélection, le débogueur se détache automatiquement à la fin des tests. En revanche, si vous choisissez Exécuter la sélection, le débogueur reste attaché.Vous pouvez trouver Exécuter la sélection plus utile, surtout si vous envisagez de réexécuter le test plusieurs fois pendant le débogage, et ne souhaitez pas devoir rattacher le processus chaque fois.Si vous avez choisi Exécuter la sélection, détachez le processus à la fin du débogage en choisissant Arrêter le débogage dans le menu Déboguer ou appuyez sur Maj+F5.

Débogage pendant l'exécution sur un serveur de développement ASP.NET

Pour déboguer pendant l'exécution d'un test sur le serveur de développement ASP.NET

  1. Créez un projet de site Web ASP.NET que vous souhaitez tester et un test unitaire ASP.NET pour le tester.

    Lorsque vous créez ce projet de site Web, dans la boîte de dialogue Nouveau site Web, sélectionnez Système de fichiers comme Emplacement. Vous êtes ainsi sûr que le processus hôte sera le serveur de développement ASP.NET.

  2. Activez le débogage dans le projet Web ASP.NET. Pour ce faire, modifiez le fichier de configuration Web du projet. Si votre projet a déjà un fichier Web.config, passez à l'étape 4. Si ce n'est pas le cas, ajoutez-en un maintenant : cliquez avec le bouton droit sur le projet de site Web dans votre solution, puis cliquez sur Ajouter un nouvel élément.

    La boîte de dialogue Ajouter un nouvel élément s'affiche.

  3. Dans la boîte de dialogue Ajouter un nouvel élément, cliquez sur Fichier de configuration Web puis cliquez sur Ajouter.

    Un fichier Web.config est ajouté à votre projet de site Web. Pour plus d'informations sur l'utilisation de fichiers web.config, consultez Comment : Activer le débogage pour les applications ASP.NET.

  4. Dans le fichier Web.config, modifiez la ligne qui lit <compilation debug="false"/> en <compilation debug="true"/>.

  5. Ajoutez l'instruction System.Diagnostics.Debugger.Break () au début de votre test unitaire ASP.NET.

    Notes

    Les points d'arrêt de votre code seront atteints uniquement s'ils suivent cette instruction System.Diagnostics.Debugger.Break ().

    Notes

    En C++, cette instruction est System::Diagnostics::Debugger::Break().Pour plus d'informations sur l'utilisation de tests unitaires dans Visual C++, consultez Unit Tests and C++.

  6. Définissez des points d'arrêt dans le test unitaire ASP.NET et dans le code de production de votre site Web.

  7. Démarrez votre test.

    Pour cela, sélectionnez le test que vous souhaitez déboguer dans l'explorateur de tests unitaires puis dans le menu Test, choisissez Déboguer les tests unitaires puis Tests sélectionnés.

  8. Dès que le test commence à s'exécuter, une boîte de dialogue apparaît. Cette boîte de dialogue indique que le programme a atteint un point d'arrêt.

  9. Cliquez sur Déboguer, choisissez l'instance de Visual Studio dans laquelle votre solution est chargée, puis cliquez sur Oui.

    Visual Studio se joindra au processus, avec l'exécution suspendue à l'instruction System.Diagnostics.Debugger.Break(). Vous pouvez choisir Continuer dans le menu Déboguer ou appuyer sur F5 pour permettre à l'exécution de se poursuivre jusqu'au prochain point d'arrêt.

    Notes

    N'oubliez pas de supprimer l'instruction System.Diagnostics.Debugger.Break () lorsque vous avez fini le débogage.Sinon, la boîte de dialogue du point d'arrêt apparaît chaque fois que vous exécutez le test.

Voir aussi

Comment : déboguer pendant l'exécution d'un test
Comment activer le débogage pour les applications ASP.NET