在 Mac 使用 Rider 開發時,突然遇到執行測試失敗,顯示的錯誤訊息如下:
1 | System.ObjectDisposedException: Cannot access a disposed object. |
前一刻才剛跑過所有的測試,突然間就死一片,如圖:
主要原因是本機整合測試時,為了要使用 IServiceProvider
,所以建立出 IHostBuilder
實體。
但很不幸的是這個 Host
死在背景,而且站著資源放不掉,所以重跑測試時一直無法 Build 出新的 Host,導致 IServiceProvider
不能被使用。
可透過以下指令找出在背景的 dotnet process,在強制刪除,如下:
1 | # 找到死在背景的 dotnet process |
刪除後又回復正常了。