Почему изменения, внесенные в спецификацию, не отражаются в базе данных, используемой удаленным приложением? - PullRequest
0 голосов
/ 06 сентября 2018

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

Но когда я использую Selenium для заполнения форм данными из записей, созданных на моих этапах тестирования, я получаю сообщение об ошибке «Нет такой записи».

Моя конфигурация RSpec включает эту строку:

RSpec.configure do |c|
  c.use_transactional_fixtures = false
end

Я предположил, что это позволит получить данные для Selenium. Но это не то, что происходит.

Моя конфигурация капибары:

Capybara.javascript_driver = :headless_chrome
Capybara.app_host = 'http://selenium:5000'
Capybara.run_server = false

И тест, и тестируемое приложение используют одну и ту же базу данных в DATABASE_URL=postgres://postgres@db:5432/test_db.

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 06 сентября 2018

Выясните, что DatabaseCleaner добавляет блок транзакции.

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