Factory Girl & Rails: можем ли мы отключить транзакции базы данных, которые обертывают каждый тест? - PullRequest
2 голосов
/ 23 июня 2011

У меня проблема с блокировкой базы данных, когда я тестирую некоторые функции многопоточности, которые есть в моем приложении - база данных блокируется в одном потоке, а затем все остальные потоки блокируются в этом.Так как в моем коде нет явной транзакции, я не могу просто защитить и освободить вручную.

Я где-то читал, что фикстуры в TestCase используют неявные (неявные для моего кода) транзакции для очистки базы данных между тестами, но яне могу найти нигде, если это верно и для Factory Girl.

Кто-нибудь знает, правда ли это и если да, есть ли способ отключить его для определенных тестов, но не для всех тестов??

спасибо заранее!

1 Ответ

2 голосов
/ 23 июня 2011

FactoryGirl просто берет вашу модель, устанавливает атрибуты и вызывает #save для этой модели.Я думаю, вам просто нужно изменить настройку.С RSpec у вас должна быть строка в файле spec_helper.rb:

    config.use_transactional_fixtures = true

Эта конфигурация отправляется в конфигурацию тестирования Rails.Затем он используется в методе # setup_fixtures .

Документация по Rails транзакционные устройства

HTH

...