Jestem na Rails 4 i zauważyłem, że niektóre z moich testów RSpec zawodzą, ponieważ niektóre z moich refaktoryzacji testowych używają filtru przed (prawdopodobnie z powodu transakcji). Ten post opisuje podobny problem:Szyny 4: Jak zresetować bazę danych testów?
rails test database not clearing after some runs
Zamiast korzystania z gem DatabaseCleaner, czy istnieje komenda grabie, aby usunąć z bazy testowej? Wierzę rake db:test:prepare
jest przestarzałe w Rails 4. Ponadto, jeśli przed transakcjami jak
post :create, user: Fabricate.attributes_for(:user)
są trwałe. Czy istnieje alternatywny sposób refaktoryzacji, aby uniknąć konieczności ręcznego czyszczenia testowej bazy danych?
Pierwsze 3 rake db: * może być zastąpione tylko ostatnim, ponieważ usuwa wszystkie tabele i tworzy je ze schematu. – konole
Brakuje '' '' grab ex exec ': stwórz RAILS_ENV = test' przed 'schema: load' step – Aleks
dla Rails 5, użyj' ApplicationRecord' zamiast 'ActiveRecord :: Base' https://blog.bigbinary.com/2015 /12/28/application-record-in-rails-5.html –