Gewusst wie: Debuggen beim Ausführen eines Tests in einer ASP.NET-Projektmappe
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 typischen Testprozess ausgeführt wird, erfolgt beim Auswählen der Option Debugauswahl in der Testansicht oder der Option Aktivierte Tests debuggen im Testlisten-Editor kein Debugvorgang, während der Test ausgeführt wird.
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
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.
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 die Datei noch nicht vorhanden ist, fügen Sie sie jetzt hinzu. Klicken Sie dazu mit der rechten Maustaste auf das Websiteprojekt in der Projektmappe, und klicken Sie auf Neues Element hinzufügen.
Das Dialogfeld Neues Element hinzufügen wird angezeigt.
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 zum Verwenden der Datei Web.config finden Sie im Artikel Gewusst wie: Debuggen für ASP.NET-Anwendungen aktivieren.
Ändern Sie in der Web.config-Datei die Zeile <compilation debug="false"/> in <compilation debug="true"/>.
(Optional) Legen Sie Haltepunkte im ASP.NET-Komponententest und im Produktionscode für die Website fest.
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.
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.
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. Dazu klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Websiteprojekt und klicken dann auf In Browser anzeigen. 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.
Starten Sie den Test.
Klicken Sie dazu im Fenster Testansicht mit der rechten Maustaste auf den Test, der gedebuggt werden soll, und wählen Sie Debugauswahl aus.
Tipp
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
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.
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 die Datei noch nicht vorhanden ist, fügen Sie sie jetzt hinzu. Klicken Sie dazu mit der rechten Maustaste auf das Websiteprojekt in der Projektmappe, und klicken Sie auf Neues Element hinzufügen.
Das Dialogfeld Neues Element hinzufügen wird angezeigt.
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 zum Verwenden der Datei Web.config finden Sie im Artikel Gewusst wie: Debuggen für ASP.NET-Anwendungen aktivieren.
Ändern Sie in der Web.config-Datei die Zeile <compilation debug="false"/> in <compilation debug="true"/>.
Fügen Sie am Anfang des ASP.NET-Komponententests die System.Diagnostics.Debugger.Break()-Anweisung hinzu.
Tipp
Haltepunkte im Code werden nur erreicht, wenn diese der System.Diagnostics.Debugger.Break()-Anweisung folgen.
Tipp
In C++ ist dies die System::Diagnostics::Debugger::Break()-Anweisung. Weitere Informationen zur Verwendung von Komponententests in Visual C++ finden Sie unter Komponententests und C++.
Legen Sie Haltepunkte im ASP.NET-Komponententest und im Produktionscode für die Website fest.
Starten Sie den Test.
Klicken Sie dazu im Fenster Testansicht mit der rechten Maustaste auf den auszuführenden Test, und wählen Sie Auswahl ausführen aus.
Wenn der Test startet, wird ein Dialogfeld angezeigt. Dieses Dialogfeld zeigt an, dass das Programm einen Haltepunkt erreicht hat.
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.
Tipp
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
Aufgaben
Gewusst wie: Debuggen, während ein Test ausgeführt wird