2011-12-02 94 views
1

在symfony 1.x中,有些代碼可以在沒有修改數據庫的情況下運行測試。例如,我的一個測試測試用戶的註冊。執行此測試後,用戶始終處於數據庫中。 我們如何在不修改數據庫的情況下永久執行測試?不要影響數據庫測試

+0

跟蹤您的修改並在之後撤消它們。或者創建一個測試數據庫。一旦你修改了數據庫,它已被修改 - 沒有「撤消」按鈕。所以你必須建立一個你自己。如果您插入一行,請將其刪除。如果您修改了一行,請選擇它並先將其存儲,然後再放回。如果刪除一個,也一樣。或者(更好)有一個鏡像實時數據庫的測試數據庫,並使用它進行測試。 – DaveRandom

+0

哎唷,這不是sf 1.x中更好的方法嗎?我認爲用於測試的數據庫更好,但是我必須在每次測試之間重新初始化她的安全性否? :/ – bux

回答

2

首先,亞歷山大的優秀文章this描述瞭如何在每次測試後回滾數據庫。

也可以使用sqlite作爲測試數據庫,因爲它在內存中,因此速度更快。 This article描述瞭如何做到這一點。如果您需要在測試之間處理數據,如創建對象然後進行編輯,則此方法非常方便。這不是一個好的實踐,但有時候是沒有辦法的。

我使用分裂的方法,有一個sqlite數據庫的速度和做每個測試後亞歷山大所述的回滾。它工作得很好:-)

+0

謝謝!我使用第一個鏈接(亞歷山大莎樂美博客),它的工作。我有教條的問題(一些實體檢索與教條不是'鏈接':「一個新的實體是通過關係發現的...」),但如果它鏈接到這個腳本我不會沒有。 – bux