近日因為要對App_code裡面的類別進行Unit test,因使用微軟ASPNET Unit test,但簡單的測試一個Method就出現以下錯誤:
Web 要求 'http://localhost:41122/XXXXX/' 順利完成,但未執行測試。當設定 Web 應用程式進行測試,但發生錯誤時 (處理要求時發生 ASP.NET 伺服器錯誤),或未執行任何 ASP.NET 網頁時 (URL 可能指向 HTML 網頁、Web 服務或目錄清單),就可能發生這種情形。在 ASP.NET 中執行測試時,URL 必須解析為 ASP.NET 網頁,而且頁面要能順利執行至 Load 事件。要求的回應會連同測試結果一併儲存在檔案 'WebRequestResponse_XXXXXXXTest.html' 中。通常這個檔案可以使用 Web 瀏覽器開啟以檢視內容。
解決的方式如下:
在網站根目錄下新增一個Temp.aspx,然後在Web.config的<configuration>區段下,加入以下   
<location path="temp.aspx">     
  <system.web>      
    <authorization>      
     <allow users="?"/>      
    </authorization>      
  </system.web>      
</location>
…
</configuration>
然後在test method修改UrlToTest到temp.aspx
<TestMethod(), _     
 HostType("ASP.NET"), _      
 AspNetDevelopmentServerHost("C:\inetpub\wwwroot\XXX", "/XXX"), _    
 UrlToTest("http://localhost/XXXXXX/temp.aspx")> _     
Public Sub chk51Has99DataTest()
…   
再測試就通過了
參考
http://social.msdn.microsoft.com/Forums/en-US/vststest/thread/7db9472a-7f2a-4930-bbd2-6f0f6e5c191c/
沒有留言:
張貼留言