Skip to content

Share solution #28

@Paxa

Description

@Paxa

When I change to database rewinder our tests become slower, because in many cases we used transaction strategy.

Here is solution that worked for us:
Use DatabaseRewinder only for capybara+js examples, for others - DatabaseCleaner with db transactions

RSpec.configure do |config|
  config.before(:suite) do
    DatabaseCleaner.strategy = :transaction
    DatabaseRewinder.clean_all
  end

  config.before(:each) do |example|
    if example.metadata[:js]
      # nothing
    else
      DatabaseCleaner.start
    end
  end

  config.after(:each) do |example|
    if example.metadata[:js]
      DatabaseRewinder.clean
    else
      DatabaseCleaner.clean
      DatabaseRewinder.cleaners.each {|c| c.send(:reset) }
    end
  end
end

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions