前言
最近將 ABP Framework 方案修改好程式後,執行 Web 整合測試時,
只是簡單的測試 Web Root 頁面是否運作正常,
居然測試不過,而且會回 302 or 404 的錯誤。HTTP/1.1 GET http://localhost/ - - - 404
解法
猜想有可能是 Config 的問題,但是不知到底是那一個,
結果看到 Integration tests in ASP.NET Core 這篇在建立 HostBuilder 時,有多設定 Environment
為 Development。
所以多加上設定為 Development 居然就沒問題了。
花了好多時間,但還是找不到為什麼原本的 Abp 專案不用特別設定 Development 也沒有問題,
之後有找到問題點再來補充說明。
所以目前的 Workaround 做法就是 設定 Environment
為 Development。
WebTestBase.cs 中的 CreateHostBuilder
Method 原本如下,
1 | protected override IHostBuilder CreateHostBuilder() |
加上設定 Environment
為 Development (.UseEnvironment("Development")
)。
1 | protected override IHostBuilder CreateHostBuilder() |
這樣子就沒問題了。
參考資源
Integration tests in ASP.NET Core
Integration Testing ASP.NET Core 2.x
ASP.NET Core MVC / Razor Pages: Testing