ActiveRecord SQLite3 BusyException“无法打开保存点”

时间:2013-11-01 19:45:28

标签: ruby-on-rails activerecord rspec sqlite

我正在使用Rails3与FactoryGirl和RSpec进行测试。某些测试开始失败,并出现以下错误:

  

失败/错误:让!(:用户){FactoryGirl.create:user}

     

的ActiveRecord :: StatementInvalid:

     

SQLite3 :: BusyException:无法打开保存点 - 正在进行的SQL语句:SAVEPOINT active_record_1

只有在我运行整个测试套件时才会发生这种情况。如果我只运行1个文件的测试,那么它会毫无错误地通过。

1 个答案:

答案 0 :(得分:1)

尝试使用延迟版let(:user)代替let!(:user)。由于使用let!多次调用,可能会导致数据库负载过重。

锁定的另一个可能原因是open console。或者说,Capybara如何使用multiple threads

猜猜,最简单的解决方案是add some timeout