我正試圖將基於API的服務的測試環境放在一起。理想情況下,我希望每個測試都有一個默認數據庫。恢復默認的MySQL狀態,如事務,但全局。
讓我感興趣的是我想通過API來觸發寫入,讀取和更新,這將會像任何其他正常的日子一樣觸發數據庫。我只是試圖確定回滾這些更改的最佳方式。我知道事務,但這些似乎是依賴於連接的,並且我不能保證每個操作都會使用相同的連接,這是由於Web應用程序的性質。
我的第一次嘗試可能會涉及每次導入整個數據庫。我知道這會起作用,但它可能會很慢。
交易看起來像他們可以工作,但我是相對較新的以這種方式使用它們。
不幸的是,我試圖讓實際代碼儘可能輕鬆,所以對錶名等的更改將會是不可取的。 您激勵我嘗試複製每個表的數據* out *,然後在測試完成時恢復它。也許我甚至可以簡單地擁有多個模式並以這種方式放棄它。我希望它會比完整的重新加載要快。 – omgz0r 2013-02-12 18:21:22
@ omgz0r在任何情況下,您都需要在測試設置和拆除時執行一組SQL命令。就我個人而言,我喜歡有一個完整的表格刪除,表格創建,表格插入SQL命令在測試本身內執行,因爲那樣您就可以將實際的測試表格結構檢入到您的代碼庫中,並且開發人員可以根據需要修改SQL中的測試當他們對測試表進行任何模式更改時。我不喜歡複製模板表並使用INSERT ... SELECT *查詢的想法,因爲如果數據庫中的數據發生更改,測試可能會中斷。 – 2013-02-12 18:33:55