我在处理 cucumber 和数据库事务时遇到了一些问题-特别是,当我运行测试套件时,此后不会清除数据库事务。

我正在用spork,postgres运行Rails 3.1。

最初,features/support/env.rb设置为使用database_cleaner,但每次对数据库的调用始终出现以下错误:



我尝试恢复常规交易,但没有任何乐趣。我可以通过控制台( cucumber 环境)访问数据库,并且可以毫无问题地创建/删除/检索记录。 config/database.yml,features/support/env.rb,config/environments/cucumber.rb和rspec/spec_helper.rb文件在下面添加。任何建议都非常感激-这个建议让我感到困惑了一段时间:

配置/数据库

default: &defaults
  adapter: postgresql
  username: rails_dev
  password: foobar

development:
  <<: *defaults
  database: fcct_d

test: &test
  <<: *defaults
  database: fcct_t

production:
  <<: *defaults
  database: fcct_p
  username: fcct
  password: k#1*5Avb3dTa

cucumber:
  adapter: postgresql
  username: rails_dev
  password: foobar
  database: fcct_t

功能/支持/ENV.RB
require 'rubygems'
require 'spork'

Spork.prefork do
  require 'cucumber/rails'
  require 'database_cleaner'
  require 'database_cleaner/cucumber'


  Capybara.default_selector = :css

  ActionController::Base.allow_rescue = false

  begin
    DatabaseCleaner.strategy = :transaction
  rescue NameError
    raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
  end

end

Spork.each_run do
  require 'factory_girl'
  require File.join(File.dirname(__FILE__), '../../lib/existing_factory/existing_factory.rb')
end

配置/环境/CUBUM.RB



SPEC/SPEC_HELPER.RB

最佳答案

对于那些想知道的人-这是我的config/database.yml文件中有&defaults的事实。数据库清理程序有一个自己的“默认值”调用,它会拦截配置信息。

关于ruby-on-rails - Rails : Cucumber not cleaning DB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7144112/

10-16 18:12