Laravel 8 釋出,小弟我看了看改版消息,非常喜歡新版本,於是馬上按照官方文件升級
然而在升級完後跑單元測試就噴錯誤了,這是第一個要注意的點
請按照錯誤訊息,修改 composer.json 的 phpunit 版本為 9,然後 composer update
第二個錯誤一樣是單元測試,錯誤訊息會說 Seeder 類別找不到
即使我回到上一個 commit 狀態當然也沒用,因為 vendor 不受版控
我也確定過程中我只有升級 Laravel 版本而已,這時候問題可以鎖定在這了
進一步 Debug 我發現 Laravel 7 和 8 的 php artisan help db:seed 有點不同
Seeder 的預設資料夾居然偷偷被換掉了,7 是 seeds ; 8 則是 seeders
連 composer.json 的內容都有些出入
解決辦法是把 seeds 資料夾改成 seeders,並且把 composer.json 中 classmap 的部份
由 database/seeds 改成 database/seeders,然後下一行 composer dump-autoload 即可
這時候你可能會發現,你舊有的 Seeder 還是會噴找不到的錯誤
那是因為 Laravel 8 的 Seeder 有 namespace,就在加上去即可