Мои тесты на огурцы модифицируют базу данных dev. Как мне заставить его изменить тестовую базу данных? - PullRequest
3 голосов
/ 30 августа 2011

Вверху моего файла features / support / env.rb:

ENV["RAILS_ENV"] = 'test'

Но тесты все еще изменяют базу данных разработки .... Даже когда я делаю

rake cucumber:authentication RAILS_ENV=test

он все еще изменяет базу данных разработчика

Что еще мне нужно изменить?

database.yml:

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

test:
  adapter: mysql
  encoding: utf8
  database: app_test
  username: root
  password:

production:
  adapter: mysql
  encoding: utf8
  database: app_production
  username: root
  password: 

cucumber: &CUCUMBER
    adapter: mysql
    encoding: utf8
    database: app_cuke
    username: root
    password:

culerity:
  <<: *CUCUMBER

с использованием:

 ruby 1.8.7
    rails 2.3.8
    and cucumber 1.0.2 

Ответы [ 3 ]

0 голосов
/ 19 сентября 2012

У меня была похожая проблема, и я решил ее следующим образом:

В cucumber.rake я добавил задачу rake

task :ensure_test_env do
  ENV['RAILS_ENV'] = 'test'
end

и затем сделал все задачи с огурцами зависимыми от нее, например:

Cucumber::Rake::Task.new({:ok => ['db:test:prepare', :ensure_test_env]}, ...
0 голосов
/ 15 октября 2013

Также dotenv может вызвать это, потому что, если в вашем файле .env установлен DATABASE_URL, эта база данных будет использоваться независимо от того, что.Это заставило мои тесты подключиться к моей базе данных разработки для меня.

0 голосов
/ 30 августа 2011

check database.yml Возможно, вы указали базу данных разработки для тестовой среды?

Ну, основные шаги установки:

bundle install
rails generate cucumber:install

проверьте database.yml, чтобы указать правильные детали подключения

rake db:create
rake db:migrate

проверка огурца

rake cucumber

каковы были результаты этих шагов?особенно вы создали и перенесли базу данных для тестов?

...