cucumber: использует dev db, даже если я укажу RAILS_ENV = test в командной строке - PullRequest
1 голос
/ 02 сентября 2011

соответствующая часть database.yml:

development:
  adapter: mysql
  encoding: utf8
  database: dev
  username: root
  password:

test: &TEST
  adapter: mysql
  encoding: utf8
  database: test
  username: root
  password:


cucumber:
<<: *TEST

culerity:
<<: *TEST

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

Почему тест заставляет меня отвечать на запросы ruby ​​/ rails, но переключается на dev, когда представлениезапускаются тесты?

Вот как я запускаю огурец:

$> bundle exec rake test:cucumber:authentication

, который запускает задачу в этом файле:

begin

  require 'rubygems'

  ENV["RAILS_ENV"]="test"
  require 'cucumber'
  require 'cucumber/rake/task'

  namespace :test do
    namespace :cucumber do

      Cucumber::Rake::Task.new(:authentication) do |t|
        t.cucumber_opts = "features/Authentication.feature"
      end
...
...