Używam Cucumber do pisania testów integracyjnych i Database Cleaner, aby dbać o czystość mojego db. Wszystko działa idealnie, ponieważ moje testy nie wymagają obsługi Javascript.Problem z bazą danych Cleaner z Capybara Webkit
Mogę sprawić, by te ostatnie testy przeszły za pomocą Capybara webkit, ale moja baza danych nie jest w ogóle czyszczona.
Oto moja funkcje/support/env.rb file:
require 'simplecov'
SimpleCov.start 'rails'
require 'cucumber/rails'
Capybara.default_selector = :css
Capybara.javascript_driver = :webkit
begin
require 'database_cleaner'
require 'database_cleaner/cucumber'
DatabaseCleaner[:active_record].strategy = :transaction
rescue NameError
raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end
Before do
DatabaseCleaner.start
end
After do |scenario|
DatabaseCleaner.clean
end
Próbowałem coś podobnego do this, aby sprawdzić, który sterownik jest używany przez Kapibara, ale to nie działa. Próbowałem też hacka wspomnianego w trzeciej części this post, ale potem nic nie działało ...
Naprawdę nie wiem, jak to osiągnąć i każda pomoc byłaby bardzo cenna.
Z góry dziękuję.
To jest błędne powiedzieć, że strategie transakcyjne nie działają z ogórkiem. Zależy od tego, jakiego używasz sterownika Capybara. Dzięki testowi rack wszystko jest w toku, więc strategia transakcji powinna działać. –
Andy masz rację. Ponieważ mam włączoną funkcję @javascript przez cały czas, całkowicie zapomniałem o starym sprawdzianu rackowym. – svyatogor