運行我們的驗收測試套件時,我們希望對定義的數據庫狀態執行每一次測試。如果其中一個測試會寫入數據庫(比如創建用戶或其他東西),它當然不會影響以後的測試。快速複製大型MySQL數據庫進行測試
我們已經考慮過幾個選擇來實現這個目標,但是在每個單獨的測試之前複製整個數據庫似乎並不是最好的解決方案(考慮可能的性能問題)。
還有一個想法是使用MySQL事務,但是我們的一些測試會導致很多HTTP請求,因此會產生不同的PHP進程,並且在完成完整測試後,它們會過早丟失事務以進行乾淨回滾。
是否有更好的方法來保證每個驗收測試的定義數據庫狀態?我們希望保持簡單,比解決方案如aufs
或btrfs
在系統級解決它。
關閉mysql,物理複製db文件,重啓mysql。稍後,沖洗,重複。 –
技術上不是最有吸引力的解決方案,因爲我們必須在每個測試用例中的每種測試方法之後執行此操作,但也許這是必要的!?感謝您的輸入! – Johannes