Partager via


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

Mise à jour : novembre 2007

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 s'exécutent dans un autre processus de test que le processus classique, le choix de l'option Déboguer la sélection dans la fenêtre Affichage de tests ou de l'option Déboguer les tests activés dans l'Explorateur de tests ne débogue pas lorsque que le test est en cours d'exécution.

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. Le tableau suivant affiche le processus utilisé sur chaque système d'exploitation. Pour un système d'exploitation situé dans la première colonne, utilisez le nom du processus spécifié dans la troisième colonne de la section Processus disponibles de la boîte de dialogue Attacher au processus.

Système d'exploitation

Processus hôte

Nom du processus d'ASP.NET

Windows Server 2003

IIS 6.0

w3wp.exe

Windows XP

IIS 5.1

aspnet_wp.exe

Windows 2000

IIS 5.0

aspnet_wp.exe

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.

    Pour plus d'informations, consultez Comment : créer un test unitaire 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 possède déjà un fichier Web.config, allez à étape 4. Sinon, ajoutez-en un : 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, cliquez avec le bouton droit sur le projet de site Web, puis cliquez sur 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 ce faire, dans la fenêtre Affichage de tests, cliquez avec le bouton droit sur le test que vous souhaitez déboguer et sélectionnez Déboguer la sélection.

    Remarque :

    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.

    Pour plus d'informations, consultez Comment : créer un test unitaire 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 possède déjà un fichier Web.config, allez à étape 4. Sinon, ajoutez-en un : 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.

    Remarque :

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

    Remarque :

    En C++, cette instruction est System::Diagnostics::Debugger::Break(). Pour plus d'informations sur l'utilisation de tests unitaires dans Visual C++, consultez Tests unitaires et 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 ce faire, dans la fenêtre Affichage de tests, cliquez avec le bouton droit sur le test que vous souhaitez exécuter et sélectionnez Exécuter la sélection.

  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.

    Remarque :

    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

Tâches

Comment : déboguer pendant l'exécution d'un test

Comment : créer un test unitaire ASP.NET

Concepts

Vue d'ensemble des tests unitaires ASP.NET

Autres ressources

Comment : activer le débogage pour les applications ASP.NET