2

Rails プロジェクト用に cucumber/rails をセットアップし、テスト データベースにデータを入力して、それに対してテストを実行しました。「rake cucumber」を実行すると、データベースが切り捨てられます。DatabaseCleaner.strategy を :transaction と nil に設定しようとしましたが、それでも切り捨てられます。今のところ、database_cleaner をまったく使用したくないのですが、キュウリにはその存在が必要です。これが私の「./features/support/env.rb」ファイルです:

require 'cucumber/rails'
require 'capybara/cucumber'

Capybara.default_driver = :selenium

ActionController::Base.allow_rescue = false


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


Cucumber::Rails::Database.javascript_strategy = :truncation

Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
4

3 に答える 3

3

何もしない戦略があるとは思いませんが、キュウリはそれを実行する必要はありません。おそらく、env.rb ファイルとフック ファイルの db クリーニングから削除する必要があるかもしれません。

編集:

私は間違っていました、ヌル戦略があります。試す:

DatabaseCleaner.strategy = DatabaseCleaner::NullStrategy

また

DatabaseCleaner::Base.new

于 2015-02-16T12:20:06.573 に答える
1

DatabaseCleaner.strategyと の両方を設定する必要がありCucumber::Rails::Database.javascript_strategyます。

Cucumber-rails には null 戦略が付属していないため、作成する必要があります。これは私にとってはうまくいきますenv.rb

DatabaseCleaner.strategy = DatabaseCleaner::NullStrategy

class NullStrategy < Cucumber::Rails::Database::Strategy
  def before_js
    super DatabaseCleaner::NullStrategy
  end
end

Cucumber::Rails::Database.javascript_strategy = NullStrategy
于 2015-11-04T08:55:55.420 に答える