소스 검색

Remove database_cleaner gem

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)
```

https://github.com/rails/rails/pull/28083
Dominik Sander 8 년 전
부모
커밋
df6fa9f9d4
4개의 변경된 파일1개의 추가작업 그리고 11개의 파일을 삭제
  1. 0 1
      Gemfile
  2. 0 2
      Gemfile.lock
  3. 0 7
      spec/capybara_helper.rb
  4. 1 1
      spec/rails_helper.rb

+ 0 - 1
Gemfile

@@ -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
 

+ 0 - 2
Gemfile.lock

@@ -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
@@ -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

+ 0 - 7
spec/capybara_helper.rb

@@ -19,16 +19,9 @@ RSpec.configure do |config|
 
   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

+ 1 - 1
spec/rails_helper.rb

@@ -38,7 +38,7 @@ RSpec.configure do |config|
   # 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