2009-06-01 50 views
3

我們有一個Web應用程序項目(實際上有幾十個),它附有一個測試項目。在測試項目中,我有一個簡單的單元測試,可以執行一些方法。AspNetDevelopmentServerHost屬性的最佳實踐是什麼?

在本地運行,單元測試執行並運行。

但是,當我們的TFS構建服務器嘗試執行測試時,它將失敗並顯示有關AspNetDevelopmentServerHost屬性的無效路徑的錯誤。其他團隊成員可以很好地執行它。

問題是我的TFS工作區的根目錄設置爲c:\ projects \其中一個團隊成員將它們設置爲c:\ tfs2008 \另一方面,TFS構建服務器將pathToWebRoot變量設置爲「 c:\ blahblah \ Release_PublishedWebsites ...「導致一個不好的路徑。

由於我們有很多項目,我不能讓每個人在每次切換項目時重置一個環境變量。

那麼,團隊環境中單元測試Web項目的最佳做法是什麼? MSDN site article是真正的微軟時尚不太有用。

回答

3

您應該在AspNetDevelopmentServerAspNetDevelopmentServerHost屬性的pathToWebApp參數中指定字符串%pathtowebroot%\\WebSiteName

+0

足夠接近。我只希望我們可以在運行時設置它。 – NotMe 2010-09-13 14:54:14

1

可以在構建過程中設置環境變量以改變路徑並仍然在本地環境中工作。

+0

經過大量研究,真正的問題是在Web項目的TFS Build中錯誤地設置了PathToWebRoot。網站工作得很好,但它沒有爲具有不同輸出路徑的Web項目正確設置。順便說一句,我放棄了這個希望,2010年解決了這個問題。 – NotMe 2009-12-15 03:46:33

3

我們使用:

<TestMethod(), _ 
HostType("ASP.NET"), _ 
AspNetDevelopmentServerHost("$(SolutionDir)\\MyWebProject", "/"), _ 
UrlToTest("http://localhost:44444/")> 
Public Sub Test() 
    AssertStuff(); 
End Sub 

$(SolutionDir)意味着它工作正常,在每個人的環境,所有的測試中可以檢查我們不得不這樣做。每次我們自動創建一個新的測試時都會改變它,但是我們仍然在編寫測試,所以它不是太困難。