2011-08-30 41 views
3

在我的功能/支持/ env.rb文件的顶部:我的黄瓜测试正在修改开发数据库。我如何获得它来修改测试分贝?

ENV["RAILS_ENV"] = 'test' 

但测试仍在修改发展分贝.... 即使当我做

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

检查database.yml的 也许你已经指定开发数据库测试ENV?

好了,基本的安装步骤是

bundle install 
rails generate cucumber:install 

检查database.yml中,指定正确的连接细节

rake db:create 
rake db:migrate 

检查黄瓜

rake cucumber 

什么是这个步骤的结果? 特别是你创建并迁移数据库的测试?

+2

我会更新我的问题,证明我不是TAHT retarded = p – NullVoxPopuli

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]}, ... 
0

另外dotenv可能会导致这种情况,因为如果在.env文件中设置了DATABASE_URL,则无论如何都将使用此数据库。这导致我的测试连接到我的开发数据库。