工厂女孩& Rails:我们可以关闭包装每个测试的数据库事务吗?

时间:2011-06-23 12:22:10

标签: ruby-on-rails transactions factory-bot

当我测试我的应用程序中的一些线程功能时,我遇到了数据库锁定这个问题 - 数据库锁定在一个线程上,然后所有其他线程死锁。由于我的代码中没有明确的事务,我不能手动保护和释放。

我在某处看到,TestCase中的灯具利用隐式(隐含到MY代码)事务来清除测试之间的数据库,但是如果对于Factory Girl来说也是如此,我找不到任何地方。

是否有人知道它是否属实,如果有,是否有办法将其关闭以进行特定测试,而不是所有测试?

提前感谢!

1 个答案:

答案 0 :(得分:2)

FactoryGirl只需获取您的模型,设置属性,并在该模型上调用#save。我想你只需要改变一个设置。使用RSpec,您的spec_helper.rb文件中应该有一行:

    config.use_transactional_fixtures = true

此配置发送到Rails测试配置。然后在#setup_fixtures方法中使用它。

关于Rails的文档transactional fixtures

HTH