1 回答

TA貢獻1856條經驗 獲得超5個贊
對此沒有簡單的答案。以下是過去對我有用的一些事情。有些可能不適用于您的應用程序,或者可能沒有意義。我希望這對您有用。
減少每次測試必須加載的夾具數(shù)量
定義一組可供所有測試使用的通用數(shù)據(jù)(用戶、產品、應用程序中的任何數(shù)據(jù))。它不一定是“一應俱全”的套裝。更多地將其視為共同點。不應在測試中修改這些數(shù)據(jù),或者至少不應以破壞測試的方式修改這些數(shù)據(jù)。在運行測試套件之前加載此裝置。在每個測試中,僅加載該特定測試所需的附加夾具。
替換 Yii 裝置
我對 Yii 不熟悉,但框架固定加載器通常效率不高。也許使用一些自己的工具會更好。
切換到內存數(shù)據(jù)庫
通常會快一點甚至很多。
復制數(shù)據(jù)庫
您可以通過加載夾具一次、創(chuàng)建數(shù)據(jù)庫的副本然后重新加載來減少加載時間。SQL 轉儲是實現(xiàn)此目的的一種方法。使用 SQLite,您可以簡單地創(chuàng)建數(shù)據(jù)庫文件的備份并在每次測試之前將其復制回來。
如果我沒猜錯的話,那么你就有一組共享相同數(shù)據(jù)的測試。您可以為每組創(chuàng)建一個套件。添加一個測試監(jiān)聽器,該監(jiān)聽器加載固定裝置并在套件運行之前創(chuàng)建副本,并在每次測試之前恢復備份。
對用例進行單元測試
不完全符合您的要求,但這將大大減少運行測試所需的時間。當您對所有用例進行單元測試時,您需要的端到端測試就會少得多。根據(jù)您的架構,目前這可能不可行,但開始努力永遠不會太晚。
- 1 回答
- 0 關注
- 114 瀏覽
添加回答
舉報