【问题标题】:My cucumber tests are modifying the dev database. How do I get it to modify the test db instead?我的黄瓜测试正在修改开发数据库。我如何让它来修改测试数据库?
【发布时间】:2011-08-30 16:57:54
【问题描述】:

在我的 features/support/env.rb 文件的顶部:

ENV["RAILS_ENV"] = 'test'

但测试仍然会修改开发数据库.... 即使我这样做了

rake cucumber:authentication RAILS_ENV=test

它仍然会改变开发数据库

我还需要改变什么?

数据库.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 

【问题讨论】:

    标签: ruby-on-rails cucumber


    【解决方案1】:

    检查database.yml 可能您已经为测试环境指定了开发数据库?

    嗯,基本的安装步骤是

    bundle install
    rails generate cucumber:install
    

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

    rake db:create
    rake db:migrate
    

    检查黄瓜

    rake cucumber
    

    这些步骤的结果是什么? 尤其是您是否为测试创建和迁移了数据库?

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,我是这样解决的:

      cucumber.rake我添加了rake任务

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

      然后我让所有黄瓜任务都依赖它

      Cucumber::Rake::Task.new({:ok => ['db:test:prepare', :ensure_test_env]}, ...
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多