2017-08-29 86 views
0

DatabaseTransactions在Laravel測試中,特質似乎比DatabaseMigrations特性更快。這很正常,因爲每次測試DatabaseMigrations都會再次運行所有遷移過程(+回滾),並且DatabaseTransactions只會取消最後一次事務。那麼選擇DatabaseTransactions特質似乎是明智的。使用Laravel進行測試:DatabaseTransactions或DatabaseMigrations

Still,DatabaseMigrations確實存在。所以,使用它有沒有什麼好處(而不是使用DatabaseTransactions)?

回答

3

有可能一些優點和缺點的,但對我來說DatabaseMigrations的兩個主要好處是:

1)你並不需要維持一個測試數據庫。如果您使用的是DatabaseTransactions,則需要確保您的測試數據庫模式是最新的數據庫模式。不難做到,只需要追蹤一些額外的東西。

2)使用DatabaseMigrations,您可以使用內存中的SQLite數據庫進行測試,它比MySQL或Postgres更快,更輕量。

總的來說,我不認爲有正確或錯誤的答案,但我認爲這只是歸結爲偏好。

+0

非常感謝!+1 –