2013年5月17日

排除ASP.NET Web Site無法進行Unit Test

近日因為要對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/

沒有留言:

張貼留言