私のenv.rbで
Before do
DatabaseCleaner.strategy = :transaction
end
私のshared_steps.rbにもフックを作成しました
Before('@database_cleaner_before') do
DatabaseCleaner.start
end
After('@database_cleaner_after') do
DatabaseCleaner.clean
end
マイ機能ファイル内
@database_cleaner_after @database_cleaner_before
Scenario: I can sign up with a new valid "Email" and "Username"
When I enter a new valid "Email"
And I enter a new "Username"
And I enter a "Password"
And I click on the "Sign up" button
Then I should see a message with word "Signed Up" and "Successfully"
私は宝石を使用しています:
Capybara 2.0.2
cucumber 1.2.1
database_cleaner 0.9.1
selenium-webdriver 2.30.0
cucumber-rails 1.3.0
Rails 3.1.0
私のデータベースで.rb
require 'active_record'
class ActiveRecord::Base
mattr_accessor :shared_connection
@@shared_connection = nil
def self.connection
@@shared_connection || retrieve_connection
end
end
ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection
DatabaseCleaner.strategy = :trancation は正常に動作しています (データベースからすべてのレコードを削除します) が、DatabaseCleaner.strategy = :transaction がデータベース レコードをロールバックしていません。私は何かを逃していますか?