Ho 30 specifiche nel mio foo_controller_spec.rb e quando eseguo l'intero file usando spec, ottengo 4 errori e 2 in attesa. Quando eseguo individualmente le 4 specifiche fallite, 3 di esse falliscono, ma una di queste passa. All'inizio ho pensato che fosse un problema di database, che i dati non venivano puliti correttamente tra le esecuzioni. Così ho installato database_cleaner (http://github.com/bmabey/database_cleaner) e aggiunto questo codice al mio spec_helper:specifica singola passa quando viene eseguito da solo, ma fallisce quando tutte le specifiche sono eseguite
config.before(:suite) do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.start
Sham.reset
login
end
config.after(:each) do
DatabaseCleaner.clean
end
Ora, quando eseguo le mie specifiche posso vedere che i tavoli sono troncati tra ogni spec quindi so che sta funzionando, ma le specifiche non riesce ancora quando viene eseguito con tutte le altre specifiche ma passa quando viene eseguito da solo. Cosa mi manca qui?
Bella correzione! Ho avuto lo stesso problema e ho scoperto che un "include Foo" al di fuori di qualsiasi blocco descrittivo stava rendendo disponibili quei metodi a tutte le specifiche. Questo ha mascherato un errore durante l'esecuzione della suite nel suo complesso. – r00k
come posso testare questo con Sublime Text e il mio terminale? – Ricbermo