Komponententests für ASP.NET-Webdienste
Es gibt einige Unterschiede zwischen Komponententests für Klassen und den Tests für ASP.NET-Webdienste. Der wichtigste Punkt: Das Projekt muss eine ASPX-Datei enthalten. In diesem Thema wird erläutert, wie diese Bedingung erfüllt werden kann. Zudem enthält das Thema Informationen zu den Vorgängen im Testprojekt beim Erstellen eines Komponententests für einen ASP.NET-Webdienst.
Weitere Informationen zum Ausführen von Leistungstests für Websites finden Sie unter Erstellen und Bearbeiten von Webleistungstests. Weitere Informationen zu Komponententests für Klassen finden Sie unter Gewusst wie: Erstellen und Ausführen eines Komponententests.
Voraussetzungen
Stellen Sie sicher, dass die folgenden IIS-Komponenten installiert sind:
IIS 6-Metabasis- und IIS 6-Konfigurationskompatibilität
Stellen Sie sicher, dass das Projekt eine ASPX-Datei enthält.
Das Projekt, das den ASP.NET-Webdienst enthält, muss eine ASPX-Datei enthalten, damit ein Komponententest ausgeführt werden kann. Ohne ASPX-Datei können Sie zwar Komponententests erstellen, beim Ausführen wird jedoch ein Fehler mit dem Hinweis angezeigt, dass die Webanforderung erfolgreich abgeschlossen wurde. Der Test wurde allerdings nicht ausgeführt.
So fügen Sie eine ASPX-Datei hinzu
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt mit dem ASP.NET-Webdienst, klicken Sie auf Hinzufügen, und klicken Sie anschließend auf Neues Element.
Klicken Sie im Dialogfeld Neues Element hinzufügen unter Installierte Vorlagen auf Internet.
Klicken Sie in der Liste mit den Webvorlagen auf Web Form und anschließend auf Hinzufügen.
Dem Projekt werden drei neue Dateien hinzugefügt: "WebForm1.aspx", "WebForm1.aspx.cs" und "WebForm1.aspx.designer.cs". Sie müssen diese Dateien nicht ändern oder verwenden.
Vorgänge, wenn ein Komponententest für einen ASP.NET-Webdienst generiert wird
Die folgende Abbildung zeigt eine Testmethode, die für ein einfaches ASP.NET-Webdienstprojekt generiert wird. Informationen zu allgemeineren Änderungen, die beim Erstellen eines Komponententests auftreten, finden Sie unter Aufbau eines Komponententests.
ASP.NET-Komponententestmethode
Alle Komponententests werden mit einem [TestMethod ()]-Attribut generiert.
Das [Host Typ ()]-Attribut gibt den Hostadapter an, in dem der Komponententest ausgeführt wird. Sie müssen dieses Attribut nicht ändern.
Das [AspNetDevelopmentServerHost()]-Attribut gibt die Einstellungen an, die verwendet werden sollen, wenn ASP.NET Development Server der Hostserver für den Test ist. Dieses Attribut wird nur eingeschlossen, wenn der ASP.NET-Webdienst auf dem Dateisystem und nicht einem IIS-Prozess ausgeführt wird. Sie müssen dieses Attribut nicht ändern.
Das [UrlToTest()]-Attribut gibt die URL des ASP.NET-Webdiensts für den Komponententest an.
Der Rest stellt den Text der Testmethode dar. Sie möchten wahrscheinlich die Variablen initialisieren und die Asserts in der Testmethode bearbeiten.
Tipp
Weitere Informationen zu den hier beschriebenen Attributen finden Sie unter
Wenn Sie Windows Vista ausführen, führen Sie Visual Studio als Administrator aus.
Wenn Sie Windows Vista ausführen, müssen Sie Visual Studio als Administrator ausführen, damit ASP.NET-Komponententests ausgeführt werden können. Wenn Sie Visual Studio als normaler Benutzer ausführen, können Sie zwar eine Website erstellen sowie ASP.NET-Tests erstellen und ausführen, die Tests schlagen jedoch fehl. Um Visual Studio als Administrator auszuführen, klicken Sie im Startmenü mit der rechten Maustaste auf Microsoft Visual Studio 2010, und klicken Sie anschließend auf Als Administrator ausführen.
Wenn Sie IIS nicht als Standardbenutzer ausführen, achten Sie darauf, alle notwendigen Berechtigungen zu aktivieren.
Wenn Sie einen ASP.NET-Webdienst erstellen, wählen Sie als Speicherort Dateisystem oder HTTP oder FTP aus. Wenn Sie Dateisystem auswählen, wird der ASP.NET Development Server-Prozess verwendet. Wenn Sie HTTP oder FTP auswählen, wird der IIS-Prozess verwendet.
Wenn der ASP.NET-Webdienst im IIS-Prozess ausgeführt wird, können Sie auswählen, dass der Komponententest aus Sicherheitsgründen nicht als Standardbenutzer ausgeführt wird. Ein nicht standardmäßiger Benutzer stellt eine andere Prozessidentität dar.
Falls beispielsweise für den ASP.NET-Webdienst Zugriff auf Computerressourcen wie Ordner, Dateien oder Datenbanken erforderlich ist, können Sie den Prozess so ausführen, dass die Berechtigungen für genau diese Ressourcen ausreichen.
Wenn für den Webdienst Berechtigungen erforderlich sind, über die der nicht standardmäßige Benutzer nicht verfügt, können beim Komponententest Fehler auftreten. Beispielsweise kann der nicht als Standardbenutzer ausgeführte ASP.NET-Prozess versuchen, temporäre Dateien im Verzeichnis %WINDIR%\Temp zu generieren, obwohl die Berechtigungen des Prozesses eingeschränkt sind. Dies schlägt fehl, wenn die Standardberechtigungen für %WINDIR%\Temp nicht zum Generieren dieser Dateien ausreichen. Damit in diesem Fall Komponententests erfolgreich ausgeführt werden können, müssen Sie dem Prozess umfassendere Berechtigungen für den Ordner %WINDIR%\Temp gewähren.
Siehe auch
Referenz
Microsoft.VisualStudio.TestTools.UnitTesting