Test di siti Web e di servizi Web in un ambiente di team
Aggiornamento: novembre 2007
La prima volta che si eseguono i test di un sito Web, si utilizza in genere il proprio computer. È tuttavia possibile scegliere di condividere i test con i colleghi del team oppure, in un ambiente più formale, è possibile lavorare a un progetto in cui il codice di produzione e i test vengono archiviati nel controllo del codice sorgente e in seguito, in un ambiente di lavoro per la generazione, gli stessi test vengono utilizzati per testare il codice. In ognuno di questi scenari, è necessario che gli unit test identifichino il sito Web che viene testato, indipendentemente dal fatto che tale sito sia ospitato o meno sul computer locale. Per consentire al modulo di test di identificare il sito Web, utilizzare la variabile %PathToWebRoot%, come descritto nelle sezioni seguenti di questo argomento.
Scelta del server
Se si sviluppa un sito Web o un servizio Web, è possibile eseguirlo utilizzando il server di sviluppo ASP.NET o un server Web quale IIS. Questa scelta determina inoltre la modalità con cui viene testato il sito Web o il servizio Web, come descritto nelle sezioni seguenti:
Test di servizi Web con un server di sviluppo ASP.NET
Test di siti Web con un server di sviluppo ASP.NET
Test correlati: ulteriori informazioni
È possibile utilizzare gli unit test per testare i metodi Web di un servizio Web, come descritto in Test di servizi Web, e la logica di business di un sito Web, come descritto in Cenni preliminari sugli unit test ASP.NET. È inoltre possibile utilizzare i test Web per testare le pagine Web, come descritto in Utilizzo di test Web.
Test di servizi Web con un server di sviluppo ASP.NET
Per testare i servizi Web mediante il server di sviluppo ASP.NET sul file system locale, contrassegnare il metodo dello unit test con l'attributo AspNetDevelopmentServer. Per identificare la posizione del sito Web, si specifica il percorso alla directory principale in un parametro dell'attributo AspNetDevelopmentServer. A questo scopo, utilizzare la variabile %PathToWebRoot%, come illustrato in Impostazione di pathToWebRoot. Per ulteriori informazioni, vedere Test di servizi Web.
Per ulteriori informazioni sull'utilizzo e la sintassi dell'attributo AspNetDevelopmentServer, vedere AspNetDevelopmentServerAttribute e Test di servizi Web.
Test di siti Web con un server di sviluppo ASP.NET
Quando si genera uno unit test ASP.NET per testare un sito Web sul file system del computer, il test viene contrassegnato con l'attributo AspNetDevelopmentServerHost. Questo attributo richiede il parametro pathToWebApp. Per impostazione predefinita, uno unit test ASP.NET generato include la variabile %PathToWebRoot% nel parametro pathToWebApp. Il valore di questa variabile viene impostato come descritto in Impostazione di pathToWebRoot. Per ulteriori informazioni sul test di siti Web con il server di sviluppo ASP.NET, vedere Cenni preliminari sugli unit test ASP.NET.
Per ulteriori informazioni sull'utilizzo e la sintassi dell'attributo AspNetDevelopmentServerHost, vedere AspNetDevelopmentServerHostAttribute e Cenni preliminari sugli unit test ASP.NET.
Impostazione di pathToWebRoot
In ogni unit test che verrà utilizzato per testare un sito Web o un servizio Web in esecuzione sul server di sviluppo ASP.NET è necessario specificare la stringa %pathtowebroot%\\<NomeSitoWeb> nel parametro pathToWebApp dell'attributo AspNetDevelopmentServer o AspNetDevelopmentServerHost. Specificare il parametro come segue:
Utilizzare la stringa %PathToWebRoot% alla lettera. Utilizzare questa stringa anche se i test sono attualmente in esecuzione solo sul computer in uso. In questo modo viene conferita ai test la flessibilità necessaria per essere condivisi con altri utenti ed eseguiti in Team Foundation Build.
Nota:
Quando si testano più siti Web sul computer e tali siti Web non condividono una directory principale comune, è possibile impostare come hardcoded il percorso del sito Web in ogni test anziché utilizzare la variabile %PathToWebRoot%. Importante: impostare questo percorso come hardcoded solo durante l'esecuzione dei test in locale; in caso contrario, non sarà possibile condividere i test per questo sito Web in modo più ampio. Assicurarsi di modificare il percorso per includere la variabile %PathToWebRoot% prima che il sito Web venga testato da altri membri del team o in Team Foundation Build.
<NomeSitoWeb> è il nome del sito Web da testare. Digitare questa stringa esattamente come il nome del sito Web viene visualizzato in Esplora soluzioni.
Per un esempio di utilizzo del parametro pathToWebApp, vedere Esempio di metodo di test.
Impostazione del valore di %PathToWebRoot%
La variabile %PathToWebRoot% acquisisce il valore in modi diversi a seconda dell'ambiente. Di seguito sono riportati i due casi possibili:
Impostazione di % PathToWebRoot% in Team Foundation Build
Impostazione di %PathToWebRoot% in altri ambienti condivisi
Impostazione di %PathToWebRoot% in Team Foundation Build
Quando viene utilizzata in Team Foundation Build, il valore della variabile %PathToWebRoot% è dedotto dalle informazioni contenute nel tipo di generazione e viene impostato automaticamente da Team Foundation Build.
Ad esempio, quando si eseguono i test sulla versione "Release" di "WebSite1" generata per la piattaforma x86, il valore di PathToWeb è impostato su:
<build directory>/binaries/x86/Release/_precompiled/WebSite1
Impostazione di %PathToWebRoot% in altri ambienti condivisi
In tutti gli altri casi in cui non viene utilizzata in Team Foundation Build, il valore della variabile %PathToWebRoot% è impostato come segue. Quando il test viene eseguito, il sistema cercherà il valore della variabile %PathToWebRoot% in uno o più dei seguenti contesti:
Posizione predefinita per i nuovi progetti di sito Web. Per impostazione predefinita, il sistema utilizza il percorso alla posizione in cui Visual Studio crea i nuovi progetti di sito Web. Il valore predefinito di questo percorso è <drive>:\Documents and Settings\<user name>\My Documents\Visual Studio 2005\WebSites\.
Variabile di ambiente PathToWebRoot. Se questa variabile di ambiente è stata definita sul computer in cui vengono eseguiti i test, il valore viene utilizzato per eseguire l'override dei valori della posizione predefinita per i nuovi progetti di sito Web.
Valore della directory principale dell'applicazione Web. Per impostare questo valore, fare clic su Strumenti, quindi su Opzioni, espandere Strumenti di test, quindi fare clic su Esecuzione dei test. Se questo valore è stato impostato, esegue l'override dei valori della variabile di ambiente PathToWebRoot e della posizione predefinita per i nuovi progetti di sito Web.
Esempio di metodo di test
Il seguente metodo di test, da cui viene testato un servizio Web, viene contrassegnato con l'attributo AspNetDevelopmentServer. L'attributo AspNetDevelopmentServer richiede il parametro pathToWebApp. L'utilizzo della variabile %PathToWebRoot% nel parametro pathToWebApp è indicato in grassetto nell'esempio seguente.
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."
);
}
Vedere anche
Attività
Procedura: modificare unit test
Procedura: impostare parametri per un servizio Web
Concetti
Server Web in Visual Web Developer
Cenni preliminari sugli unit test ASP.NET
Riferimenti
Microsoft.VisualStudio.TestTools.UnitTesting.Web
AspNetDevelopmentServerAttribute
AspNetDevelopmentServerHostAttribute