我正在使用Rails3与FactoryGirl和RSpec进行测试。某些测试开始失败,并出现以下错误:
失败/错误:让!(:用户){FactoryGirl.create:user}
的ActiveRecord :: StatementInvalid:
SQLite3 :: BusyException:无法打开保存点 - 正在进行的SQL语句:SAVEPOINT active_record_1
只有在我运行整个测试套件时才会发生这种情况。如果我只运行1个文件的测试,那么它会毫无错误地通过。
答案 0 :(得分:1)
尝试使用延迟版let(:user)
代替let!(:user)
。由于使用let!
多次调用,可能会导致数据库负载过重。
锁定的另一个可能原因是open console。或者说,Capybara如何使用multiple threads。
猜猜,最简单的解决方案是add some timeout。