2012-10-01 13 views
6

Ho una. 4 applicazione MVC Web Api che ho originariamente costruito in Visual Studio 2010. Come parte di questa soluzione ho una suite di test unitario.

ho decorato i metodi di prova unità con il seguente

[AspNetDevelopmentServerHost("$(SolutionDir)\\DataCollectionService", "/")] 

La mia comprensione è che il "$ (SolutionDir)" parametro contiene il percorso della directory soluzione e rende la suite di test più generico come funziona in più ambienti. Tutto questo funziona alla grande in Visual Studio 2010.

Tuttavia quando ho aperto il progetto in Visual Studio 2012 e provo eseguire la suite di test ottengo il seguente errore

"messaggio

: il percorso del sito Web '$ (SolutionDir) \ DataCollectionService' non esiste ...."

Se cambio al percorso esatto come

[AspNetDevelopmentServerHost("D:\\CASLog\\Trunk\\DataCollectionService", "/")] 

funziona bene, anche se non è più generico.

Non sono sicuro che sia significativo ma il mio studio di visualizzazione 2010 ha un richiamo, mentre il mio studio visivo 2012 no.

Qualche idea che sta succedendo?

risposta

6

Perché $(SolutionDir) è in effetti una macro. Le macro non sono più disponibili in VS2012. Una soluzione alternativa consiste nell'utilizzare una variabile di ambiente (personalizzata o% PathToWebRoot%). Le variabili di ambiente sono supportate da AspNetDevelopmentServerHost. È possibile impostare il valore in un metodo ClassInitializeAttribute con Environment.SetEnvironmentVariable.

Problemi correlati