2013-11-01 80 views
0

我正在使用Rails3與FactoryGirl和RSpec進行測試。一些測試開始失敗,出現以下錯誤:ActiveRecord SQLite3 BusyException「無法打開保存點」

Failure/Error: let!(:user) { FactoryGirl.create :user }

ActiveRecord::StatementInvalid:

SQLite3::BusyException: cannot open savepoint - SQL statements in progress: SAVEPOINT active_record_1

這隻會發生,如果我運行整個測試套件。如果我只對一個文件運行測試,那麼它通過沒有錯誤。

回答

1

嘗試使用懶惰版本let(:user)而不是let!(:user)。由於let!多次調用,DB數據庫負載可能會出現問題。

鎖定的另一個可能原因是open console。或者說,Capybara如何與multiple threads合作。

猜猜,最簡單的解決方案是add some timeout

+0

超時有訣竅,但感覺像是黑客攻擊,現在測試速度較慢。希望看到一個真正的修復。順便說一下,我需要讓! – Martynas

+0

要說更具體的測試代碼(也許控制器和模型)是必要的。 – Leger

相關問題