Gewusst wie: Debuggen beim Ausführen eines Tests in einer ASP.NET-Projektmappe

 

Veröffentlicht: Juli 2016

Sie können sowohl Komponententests als auch Webtests debuggen, die zum Testen von ASP.NET-Webprojekten verwendet werden. Außerdem können Sie den ASP.NET-Produktionscode beim Ausführen eines Tests debuggen.

Wenn Sie ASP.NET-Code testen, wird der Testcode jedoch nicht auf die typische Art und Weise, d. h. unter dem VSTestHost-Prozess, ausgeführt. Stattdessen wird er im IIS-Prozess oder, wenn es sich um eine dateibasierte Website handelt, in einem ASP.NET Development Server-Prozess ausgeführt. Da der Test nicht im Rahmen eines typischen Testprozesses ausgeführt wird, können Sie durch Auswahl der Option Komponententests debuggen vom Test-Menü kein Debugging bei laufendem Test ausführen.

Ebenso kann ASP.NET-Produktionscode nicht durchlaufen werden, es sei denn, das Debuggen ist aktiviert und der Debugger ist an den ASP.NET Development Server-Prozess oder den IIS-Prozess angefügt.

In jedem der folgenden Verfahren erstellen Sie mithilfe des Dialogfelds Neue Website ein neues ASP.NET-Websiteprojekt. In diesem Dialogfeld wählen Sie im Listenfeld Position eine Position für die Website aus. Durch diese Auswahl werden der Prozess, an den Sie später den Debugger anfügen, und die Schritte festgelegt, die Sie während eines Tests in einer ASP.NET-Projektmappe zum Debuggen ausführen. Die beiden Optionen sind IIS und ASP.NET Development Server.

  • Debuggen unter IIS

  • Debuggen unter ASP.NET Development Server

Debuggen unter IIS

Im folgenden Vorgang fügen Sie den Debugger an einen Prozess an. Der Prozessname ist vom verwendeten Betriebssystem abhängig, da die installierte IIS-Version durch das Betriebssystem festgelegt wird.

So verwenden Sie den Debugger bei einem ASP.NET-Test unter IIS

  1. Erstellen Sie ein ASP.NET-Websiteprojekt, das getestet werden soll, sowie einen ASP.NET-Komponententest zum Testen des Projekts.

    Wählen Sie beim Erstellen dieses Websiteprojekts im Dialogfeld Neue Website unter Speicherort entweder HTTP oder FTP aus. Dadurch wird sichergestellt, dass der Hostprozess unter IIS ausgeführt wird.

  2. Aktivieren Sie im ASP.NET-Webprojekt das Debuggen. Bearbeiten Sie hierfür die Webkonfigurationsdatei des Projekts. Wenn das Projekt bereits über die Datei Web.config verfügt, fahren Sie mit Schritt 4 fort. Wenn nicht, fügen Sie sie jetzt hinzu: Öffnen Sie das Kontextmenü für das Websiteprojekt in der Projektmappe, und wählen Sie dann Neues Element hinzufügen aus.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  3. Klicken Sie im Dialogfeld Neues Element hinzufügen auf die Option Webkonfigurationsdatei, und klicken Sie dann auf Hinzufügen.

    Dem Websiteprojekt wird eine Web.config-Datei hinzugefügt. Weitere Informationen zur Verwendung der Datei "Web.config" finden Sie in folgender Anleitung: Debuggen für ASP.NET-Anwendungen aktivieren.

  4. Ändern Sie in der Web.config-Datei die Zeile <compilation debug="false"/> in <compilation debug="true"/>.

  5. (Optional) Legen Sie Haltepunkte im ASP.NET-Komponententest und im Produktionscode für die Website fest.

  6. Fügen Sie den Debugger an den IIS-Prozess an. Klicken Sie dazu auf Debuggen und dann auf An den Prozess anhängen.

    Das Dialogfeld An den Prozess anhängen wird angezeigt.

  7. Suchen Sie unter Verfügbare Prozesse den Namen des Prozesses, an den Sie den Debugger anfügen möchten.

    Wenn der erforderliche Prozess nicht angezeigt wird, können Sie weitere Prozesse anzeigen, die ausgeführt werden. Dazu aktivieren Sie Prozesse aller Benutzer anzeigen und Prozesse in allen Sitzungen anzeigen.

  8. Klicken Sie unter Verfügbare Prozesse auf den Namen des Prozesses und dann auf Anfügen.

    Wenn der Prozess, an den der Debugger angefügt werden soll, nicht ausgeführt wird, klicken Sie auf Abbrechen und starten den Prozess. Öffnen Sie dazu im Projektmappen-Explorer das Kontextmenü für das Websiteprojekt, und wählen Sie dann In Browser anzeigen aus. Klicken Sie auf Debuggen und dann erneut auf An den Prozess anhängen. Der Prozess wird nun ausgeführt und unter Verfügbare Prozesse angezeigt. Klicken Sie auf den Namen des Prozesses und dann auf Anfügen.

  9. Starten Sie den Test.

    Wählen Sie dazu den Test, den Sie debuggen möchten, im Komponententest-Explorer aus. Wählen Sie anschließend im Menü Test die Option Komponententests debuggen und dann Ausgewählte Tests aus.

    Hinweis

    Für das Ausführen von Tests können Sie anstelle von Debugauswahl auch Auswahl ausführen auswählen.Wenn Sie Debugauswahl auswählen, wird der Debugger nach Abschluss des Tests automatisch getrennt. Wenn Sie hingegen Auswahl ausführen auswählen, bleibt der Debugger weiterhin angefügt.Die Option Auswahl ausführen ist vor allem dann hilfreich, wenn Sie den Test während des Debuggens wiederholt ausführen möchten, ohne jedes Mal den Prozess erneut anhängen zu müssen.Wenn Sie Auswahl ausführen ausgewählt haben und den Prozess nach Abschluss des Debuggens trennen möchten, wählen Sie im Menü Debuggen den Eintrag Debuggen beenden aus, oder drücken Sie UMSCHALT+F5.

Debuggen unter ASP.NET Development Server

So verwenden Sie den Debugger bei einem Test unter ASP.NET Development Server

  1. Erstellen Sie ein ASP.NET-Websiteprojekt, das getestet werden soll, sowie einen ASP.NET-Komponententest zum Testen des Projekts.

    Wählen Sie beim Erstellen dieses Websiteprojekts im Dialogfeld Neue Website unter Speicherort die Option Dateisystem aus. Dadurch wird sichergestellt, dass der Hostprozess unter ASP.NET Development Server ausgeführt wird.

  2. Aktivieren Sie im ASP.NET-Webprojekt das Debuggen. Bearbeiten Sie hierfür die Webkonfigurationsdatei des Projekts. Wenn das Projekt bereits über die Datei Web.config verfügt, fahren Sie mit Schritt 4 fort. Wenn nicht, fügen Sie sie jetzt hinzu: Öffnen Sie das Kontextmenü für das Websiteprojekt in der Projektmappe, und wählen Sie dann Neues Element hinzufügen aus.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  3. Klicken Sie im Dialogfeld Neues Element hinzufügen auf die Option Webkonfigurationsdatei, und klicken Sie dann auf Hinzufügen.

    Dem Websiteprojekt wird eine Web.config-Datei hinzugefügt. Weitere Informationen zur Verwendung der Datei "Web.config" finden Sie in folgender Anleitung: Debuggen für ASP.NET-Anwendungen aktivieren.

  4. Ändern Sie in der Web.config-Datei die Zeile <compilation debug="false"/> in <compilation debug="true"/>.

  5. Fügen Sie am Anfang des ASP.NET-Komponententests die System.Diagnostics.Debugger.Break()-Anweisung hinzu.

    Hinweis

    Haltepunkte im Code werden nur erreicht, wenn diese der System.Diagnostics.Debugger.Break()-Anweisung folgen.

    Hinweis

    In C++ ist dies die System::Diagnostics::Debugger::Break()-Anweisung.Weitere Informationen zur Verwendung von Komponententests in Visual C++ finden Sie unter Unit Tests and C++.

  6. Legen Sie Haltepunkte im ASP.NET-Komponententest und im Produktionscode für die Website fest.

  7. Starten Sie den Test.

    Wählen Sie dazu den Test, den Sie debuggen möchten, im Komponententest-Explorer aus. Wählen Sie anschließend im Menü Test die Option Komponententests debuggen und dann Ausgewählte Tests aus.

  8. Wenn der Test startet, wird ein Dialogfeld angezeigt. Dieses Dialogfeld zeigt an, dass das Programm einen Haltepunkt erreicht hat.

  9. Klicken Sie auf Debuggen, wählen Sie die Visual Studio-Instanz, in der die Projektmappe geladen ist, und klicken Sie dann auf Ja.

    Visual Studio wird dem Prozess angefügt, und die Ausführung wird bei der System.Diagnostics.Debugger.Break ()-Anweisung angehalten. Sie können im Menü Debuggen die Option Weiter auswählen oder F5 drücken, um die Ausführung bis zum nächsten Haltepunkt fortzusetzen.

    Hinweis

    Wenn Sie das Debuggen abgeschlossen haben, muss die System.Diagnostics.Debugger.Break()-Anweisung entfernt werden.Andernfalls wird das Dialogfeld für Haltepunkte bei jeder Ausführung des Tests angezeigt.

Siehe auch

Gewusst wie: Debuggen, während ein Test ausgeführt wird
Gewusst wie: Debuggen für ASP.NET-Anwendungen aktivieren