Как я могу заставить сервер rails использовать ту же базу данных, которую использует огурец во время теста? - PullRequest
2 голосов
/ 15 апреля 2010

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

Я пытался запустить главный сервер через script/server и script/server -e test во время теста на огурец, но я не могу заставить сервер использовать ту же базу данных, которую использует огурец, когда он выполняет свой шаг определения. То есть, когда второй сервер передает некоторые данные контроллеру на главном сервере, главный сервер не знает ни о каких записях, которые огурец сделал в базе данных. Как заставить огурец и главный сервер использовать одну и ту же базу данных?

Ответы [ 3 ]

2 голосов
/ 04 мая 2010

Вы можете поделиться настройками среды следующим образом.

конфиг / database.yml

test: &test
  adapter: mysql
  encoding: utf8
  reconnect: false
  database: baseproj_test
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

cucumber:
  <<: *test
0 голосов
/ 14 мая 2010

Вы ударили решение по голове в своем комментарии (нет кармы, чтобы ответить). Тесты выполняются в транзакции, которая в конце откатывается. Таким образом, внешний сервер изолирован от влияния любых запросов, которые Cucumber выполняет к базе данных. Отключение транзакционных фикстур - это путь, но я не знаю, почему он не работает.

Другие решения будут заключаться в том, чтобы: а) перестроить ваш код, чтобы вам не требовалась общая база данных (это может вызвать проблемы в других местах), или б) получить доступ к тесту Cucumber во второй базе данных сервера (через HTTP-запрос) ?).

0 голосов
/ 15 апреля 2010

Похоже, что установка Cucumber::Rails::World.use_transactional_fixtures = false в env.rb решила эту проблему.

Редактировать это больше не работает с последней установкой огурца. Сервер rails не находит данные, помещенные в базу данных тестом на огурец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...