Skip to content

Commit

Permalink
Remove database_cleaner gem
Browse files Browse the repository at this point in the history
In Rails 5.1 transactional tests share the same connection id between
the webserver and test runner. This removes the need for special cleanup
strategies.

This speeds up the tests significantly, before:
```
Finished in 3 minutes 30.3 seconds (files took 5.46 seconds to load)
```

After:
```
Finished in 1 minute 41.61 seconds (files took 5.45 seconds to load)
```

rails/rails#28083
  • Loading branch information
dsander committed May 16, 2017
1 parent aa6ca18 commit ed52050
Show file tree
Hide file tree
Showing 4 changed files with 1 addition and 11 deletions.
1 change: 0 additions & 1 deletion Gemfile
Expand Up @@ -163,7 +163,6 @@ group :development do
gem 'shoulda-matchers'
gem 'vcr'
gem 'webmock', '~> 1.17.4', require: false
gem 'database_cleaner', '~> 1.5.3'
end
end

Expand Down
2 changes: 0 additions & 2 deletions Gemfile.lock
Expand Up @@ -179,7 +179,6 @@ GEM
crack (0.4.2)
safe_yaml (~> 1.0.0)
daemons (1.1.9)
database_cleaner (1.5.3)
debug_inspector (0.0.2)
delorean (2.1.0)
chronic
Expand Down Expand Up @@ -620,7 +619,6 @@ DEPENDENCIES
coffee-rails (~> 4.2)
coveralls (~> 0.7.4)
daemons (~> 1.1.9)
database_cleaner (~> 1.5.3)
delayed_job!
delayed_job_active_record!
delorean
Expand Down
7 changes: 0 additions & 7 deletions spec/capybara_helper.rb
Expand Up @@ -19,16 +19,9 @@

config.before(:suite) do
Warden.test_mode!
DatabaseCleaner.clean_with(:truncation)
end

config.before(:each) do |example|
DatabaseCleaner.strategy = example.metadata[:js] ? :truncation : :transaction
DatabaseCleaner.start
end

config.after(:each) do
DatabaseCleaner.clean
Warden.test_reset!
end
end
Expand Down
2 changes: 1 addition & 1 deletion spec/rails_helper.rb
Expand Up @@ -38,7 +38,7 @@
# If you're not using ActiveRecord, or you'd prefer not to run each of your
# examples within a transaction, remove the following line or assign false
# instead of true.
config.use_transactional_fixtures = ENV['RSPEC_TASK'] == 'spec:nofeatures'
config.use_transactional_fixtures = true

# rspec-rails 3 will no longer automatically infer an example group's spec type
# from the file location. You can explicitly opt-in to this feature using this
Expand Down

0 comments on commit ed52050

Please sign in to comment.