Конфигурация. Интеграционные тесты для проекта Rails с использованием RSpec, Capybara, драйвера Selemium, базы данных SQLite.
Ситуация: у меня было несколько интеграционных тестов с Capybara и драйвером по умолчанию race_test. Они создают регистрацию пользователя (для Devise gem) прямо в базе данных. Затем они входят в систему и тестируют сценарий с использованием Capybara DSL, как это сделал бы пользователь.
Проблема. Я попытался изменить драйвер на Selenium, чтобы также протестировать код JavaScript. Теперь тесты терпят неудачу, потому что приложение не видит регистрацию пользователя, созданную тестами.
Исследование: похоже, что драйвер Selenium по-разному работает с транзакциями, поэтому изменения, сделанные в тесте, невидимы в веб-приложении. Возможное решение включает:
config.use_transactional_fixtures = false
DatabaseCleaner.strategy = :truncation