Тест rspec с использованием обычной базы данных, а не тестовой базы данных - PullRequest
2 голосов
/ 06 июля 2011

Я использую Rspec, webrat, selenium rc для тестов.

Я пытаюсь сделать интеграционный тест с селеном и rspec.

Я только что заглянул в свою базу данных разработки и узнал, что мои интеграционные тесты используют мою базу данных разработки, а не мою тестовую базу данных.

Как настроить rails, rspec и selenium для использования моей тестовой базы данных.

Кажется, что все мои другие тесты используют мою базу данных тестов.

Ответы [ 3 ]

15 голосов
/ 06 июля 2011

Есть ли у вас строка, как

  ENV["RAILS_ENV"] ||= 'test'

в вашем spec_helper.rb? вынуждает ли он использовать тестовую базу данных, если вы добавляете / заменяете ее на

ENV["RAILS_ENV"] = 'test'

И это может быть корнем вашей проблемы со вчерашнего дня - повторная проверка электронной почты ??

0 голосов
/ 23 января 2014

Согласно документации по rspec-rails, поместите камень rspec-rails в группы разработки и тестирования Gemfile.Это связано с тем, что тестовая задача rake загружает среду разработки перед переключением в тестовую среду.

group :development, :test do
  gem 'rspec-rails'
end

Ссылки: https://github.com/rails/rails/issues/7175, https://github.com/rails/rails/issues/8591 - rspec загружает среду разработки

0 голосов
/ 02 августа 2012

Я столкнулся с той же проблемой (тесты rspec выполняются не на тестовой среде, а на разработке) при портировании приложения Rails 2 на Rails 3. Изменение строки

ENV["Rails.env"] ||= 'test'

на

ENV["RAILS_ENV"] ||= 'test'

в spec_helper.rb исправлена ​​моя проблема.

Я понимаю, что RAILS_ENV устарела в пользу Rails.env, и подозреваю, что в порту было перенесено что-то плохое, что вынуждает меня внести это изменение.

Здесь также есть хорошее обсуждение RAILS_ENV и Rails.env, которое может дать более глубокое понимание:

Правильная замена Ruby on Rails 3 для ENV ["RAILS_ENV"] || = 'production«

...