Настройка базы данных вне транзакционных устройств в Rails 2.3 - PullRequest
1 голос
/ 14 июля 2011

Для моего проекта Rails я использую собственный код для настройки базы данных перед каждым тестом.Это много данных, и каждый раз это занимает около 2 секунд.Эти данные одинаковы для каждого теста, поэтому я хочу не выполнять эту настройку для каждого теста.

В Rails есть транзакционные фиксаторы, которые откатывают базу данных до состояния, в котором она находилась до теста, но послеРельсовые светильники.Моя проблема заключается в том, что он также возвращается к состоянию, в котором он находился до создания моих установочных данных.

Есть ли способ предотвратить откат транзакционных исправлений моего установочного кода?Я предполагаю, что мне нужно выполнить мой установочный код до начала транзакции, но где это будет?

1 Ответ

1 голос
/ 21 августа 2011

Это нормально, если эти данные находятся в БД одинаково для всех тестов?

Если это так, вы можете последовать тому же совету из следующего вопроса, касающегося получения начальных данных для использования с тестовыми приборами: Предотвращение тестом Rails удаления исходных данных

Вы хотите добавить в начало вашего test_helper.rb

require "#{Rails.root}/PATH/TO/TEST_DATA_GENERATOR.rb"
generate_test_data

После этого кажется, что ваши тестовые данные будут сгенерированы один раз, а затем обработаны транзакционно, как приборы. Надеюсь, это поможет.

...