我在处理 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/