在我的features / support / env.rb文件的顶部:
ENV["RAILS_ENV"] = 'test'
BUt测试仍然修改开发数据库.... 即使我做了
rake cucumber:authentication RAILS_ENV=test
它仍会更改dev db
我还需要改变什么?
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
答案 0 :(得分:0)
检查database.yml 您可能已为测试环境指定了开发数据库吗?
好的,基本的安装步骤是
bundle install
rails generate cucumber:install
检查database.yml,指定正确的连接细节
rake db:create
rake db:migrate
检查黄瓜
rake cucumber
这个步骤的结果是什么? 特别是你为测试创建并迁移了数据库吗?
答案 1 :(得分:0)
我有类似的问题,我解决了这个问题:
在cucumber.rake
中,我添加了rake任务
task :ensure_test_env do
ENV['RAILS_ENV'] = 'test'
end
然后我让所有黄瓜任务依赖于它
Cucumber::Rake::Task.new({:ok => ['db:test:prepare', :ensure_test_env]}, ...
答案 2 :(得分:0)
同样dotenv可能会导致这种情况,因为如果.env文件中设置了DATABASE_URL,则无论如何都将使用此数据库。这导致我的测试连接到我的开发数据库。