Testen von Websites und Webdiensten in einer Teamumgebung

Aktualisiert: November 2007

Das erste Testen einer Website geschieht gewöhnlich auf dem eigenen Computer. Sie sollten die Tests jedoch auch für Ihre Teamkollegen freigeben. Möglicherweise arbeiten Sie aber auch in einer formaleren Umgebung an einem Projekt, bei dem Sie den Produktionscode und die Tests in die Quellcodeverwaltung einchecken und Ihre Tests anschließend in einem Build-Labor zum Testen des Codes verwendet werden. In jedem dieser Szenarien müssen die Komponententests die getestete Website identifizieren und feststellen können, ob sie sich auf dem lokalen Computer befindet oder nicht. Damit das Testmodul die Website identifizieren kann, verwenden Sie die Variable %PathToWebRoot%, wie in den folgenden Abschnitten dieses Themas beschrieben.

Serveroptionen

Wenn Sie eine Website oder einen Webdienst entwickeln, können Sie sie bzw. ihn entweder mithilfe von ASP.NET Development Server oder mithilfe eines Webservers wie IIS ausführen. Von dieser Entscheidung hängt auch ab, wie Sie die Website oder den Webdienst testen. Dies wird in den folgenden Abschnitten ausgeführt:

  • Testen von Webdiensten mit ASP.NET Development Server

  • Testen von Websites mit ASP.NET Development Server

Ähnliche Tests: Weitere Informationen

Eine Beschreibung, wie Komponententests zum Testen der Webmethoden eines Webdiensts verwendet werden, finden Sie unter Testen von Webdiensten, eine Beschreibung des Testens der Geschäftslogik einer Website unter Übersicht über ASP.NET-Komponententests. Darüber hinaus können Sie Webtests zum Testen von Webseiten verwenden, wie in Arbeiten mit Webtests beschrieben.

Testen von Webdiensten mit ASP.NET Development Server

Um Webdienste mit ASP.NET Development Server auf dem lokalen Dateisystem testen zu können, markieren Sie die Komponententestmethode mit dem AspNetDevelopmentServer-Attribut. Zum Ermitteln des Speicherorts der Website geben Sie den Pfad zum Stammverzeichnis der Website in einem Parameter des AspNetDevelopmentServer-Attributs an. Verwenden Sie dazu die %PathToWebRoot%-Variable, wie unter Festlegen von pathToWebRoot erläutert. Weitere Informationen finden Sie unter Testen von Webdiensten.

Weitere Informationen über die Verwendung und die Syntax des AspNetDevelopmentServer-Attributs finden Sie unter AspNetDevelopmentServerAttribute und unter Testen von Webdiensten.

Testen von Websites mit ASP.NET Development Server

Wenn Sie zum Testen einer Website auf dem Dateisystem Ihres Computers einen ASP.NET-Komponententest generieren, wird der Test mit dem AspNetDevelopmentServerHost-Attribut markiert. Dieses Attribut erfordert den pathToWebApp-Parameter. Standardmäßig schließt ein generierter ASP.NET-Komponententest die %PathToWebRoot%-Variable in den pathToWebApp-Parameter ein. Der Wert dieser Variablen wird wie unter Festlegen von pathToWebRoot beschrieben festgelegt. Weitere Informationen zum Testen von Websites mit ASP.NET Development Server finden Sie unter Übersicht über ASP.NET-Komponententests.

Weitere Informationen zur Verwendung und Syntax des AspNetDevelopmentServerHost-Attributs finden Sie unter AspNetDevelopmentServerHostAttribute und Übersicht über ASP.NET-Komponententests.

Festlegen der pathToWebRoot-Variable

In jedem Komponententest zum Testen einer Website oder eines Webdienstes unter ASP.NET Development Server sollten Sie die Zeichenfolge %pathtowebroot%\\<Websitename> im pathToWebApp-Parameter des AspNetDevelopmentServer-Attributs oder des AspNetDevelopmentServerHost-Attributs angeben. Geben Sie den Parameter wie folgt an:

  • Verwenden Sie die Zeichenfolge %PathToWebRoot% entsprechend ihrer Bedeutung: Pfad zum Webstamm. Verwenden Sie diese Zeichenfolge auch, wenn Sie die Tests derzeit nur auf dem eigenen Computer ausführen. Dies verleiht den Tests Flexibilität, sodass sie für andere freigegeben und in Team Foundation Build ausgeführt werden können.

    Hinweis:

    Wenn Sie mehrere Websites auf dem eigenen Computer testen und diese Websites kein gemeinsames Stammverzeichnis verwenden, sollten Sie den Pfad zu der Website in jedem Test als vordefinierten Code aufnehmen statt die %PathToWebRoot%-Variable zu verwenden. Wichtig: Dieser Pfad sollte nur bei lokalen Tests fest angegeben werden, da hierdurch eine allgemeinere gemeinsame Nutzung von Tests dieser Website verhindert wird. Denken Sie daran, den Pfad zu ändern und die %PathToWebRoot%-Variable einzufügen, bevor Sie die Website von anderen Mitgliedern des Teams oder in Team Foundation Build testen lassen.

  • <Websitename> ist der Name der zu testenden Website. Geben Sie diese Zeichenfolge genau so ein, wie der Name der Website im Projektmappen-Explorer angezeigt wird.

Ein Beispiel für die Verwendung des pathToWebApp-Parameters finden Sie unter Beispieltestmethode.

Festlegen des Werts von %PathToWebRoot%

Die %PathToWebRoot%-Variable erhält ihren Wert in verschiedenen Umgebungen auf unterschiedliche Weise. Die folgenden beiden Fälle sind möglich:

  • Festlegen von %PathToWebRoot% in Team Foundation Build

  • Festlegen von %PathToWebRoot% in anderen freigegebenen Umgebungen

Festlegen von %PathToWebRoot% in Team Foundation Build

Wenn sie in Team Foundation Build verwendet wird, leitet sich der Wert der %PathToWebRoot%-Variable aus den Daten im Buildtyp ab und wird von Team Foundation Build automatisch festgelegt.

Wenn Sie beispielsweise Tests mit der 'Release'-Version von 'WebSite1' für die x86-Plattform ausführen, wird der Wert der PathToWeb-Variable wie folgt festgelegt:

<build directory>/binaries/x86/Release/_precompiled/WebSite1

Festlegen von %PathToWebRoot% in anderen freigegebenen Umgebungen

Wenn sie nicht in Team Foundation Build verwendet wird, wird der Wert der %PathToWebRoot%-Variablen in allen anderen Fällen wie folgt festgelegt: Bei Ausführung des Tests sucht das System an den folgenden Stellen nach dem Wert der %PathToWebRoot%-Variablen:

  • Am Standardspeicherort für neue Websiteprojekte. Standardmäßig verwendet das System den Pfad zu dem Speicherort, an dem Visual Studio neue Websiteprojekte erstellt. Der Standardwert hierfür ist <drive>:\Documents and Settings\<user name>\My Documents\Visual Studio 2005\WebSites\.

  • In der PathToWebRoot-Umgebungsvariablen. Wenn Sie diese Umgebungsvariable auf dem Computer definiert haben, auf dem die Tests ausgeführt werden, wird der zugehörige Wert verwendet, der jeden anderen Wert vom Standardspeicherort für neue Websiteprojekte überschreibt.

  • Im Wert für das Stammverzeichnis der Webanwendung. Um diesen Wert festzulegen, klicken Sie auf Extras und dann auf Optionen, erweitern Testtools und klicken anschließend auf Testausführung. Wenn Sie diesen Wert festgelegt haben, überschreibt er alle anderen Werte der PathToWebRoot-Umgebungsvariablen und des Standardspeicherorts für neue Websiteprojekte.

Beispieltestmethode

Die folgende Testmethode, mit der ein Webdienst getestet wird, wird mit dem AspNetDevelopmentServer-Attribut markiert. Das AspNetDevelopmentServer-Attribut erfordert den pathToWebApp-Parameter. Die Verwendung der %PathToWebRoot%-Variablen im pathToWebApp-Parameter ist im folgenden Beispiel durch Fettdruck gekennzeichnet.

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting.Web;
using TestProject1.localhost;

[TestMethod]
[AspNetDevelopmentServer("HelloWorldServer", "%PathToWebRoot%\\WebSite1")]

public void HelloWorldTest()
{
    HelloWorldService target = new HelloWorldService();

    WebServiceHelper.TryUrlRedirection(
                                       target, 
                                       TestContext,
                                       "HelloWorldServer"
                                       );

    string expected = "Hello World";
    string actual;

    actual = target.HelloWorld();

    Assert.AreEqual(
                    expected, 
                    actual,

"TestProject1.localhost.HelloWorldService.HelloWorld did not return the expected value."
                    );
}

Siehe auch

Aufgaben

Gewusst wie: Erstellen eines Komponententests

Gewusst wie: Parametrisieren eines Webservers

Konzepte

Webserver in Visual Web Developer

Übersicht über ASP.NET-Komponententests

Referenz

Microsoft.VisualStudio.TestTools.UnitTesting.Web

AspNetDevelopmentServerAttribute

AspNetDevelopmentServerHostAttribute

Weitere Ressourcen

Testen von Webdiensten

Gewusst wie: Generieren eines Komponententests