2010-03-02 7 views
6

Jedna z moich specyfikacji kończy się niepowodzeniem, gdy uruchomię ją za pomocą "specyfikacji rake", ale przechodzi, gdy używam pliku wykonywalnego RSpec "spec". Specyfikacja nie powiedzie się, gdy używam pomocnika url w widoku ActionMailer. Komunikat o błędzie:Specyfikacja RSpec nie powiedzie się po wywołaniu za pomocą "specyfikacji rake", przechodzi po wywołaniu przez "spec spec"

auction_url failed to generate from {:action=>"show", :state=>"asd", :slug=>"asd", :controller=>"auctions"}, expected: {:action=>"show", :controller=>"auctions"}, diff: {:state=>"asd", :slug=>"asd"} 

: stan i: ślimak są wymagane dla adresu URL. Trasa wygląda następująco:

map.auction ':state/:slug', :controller => 'auctions', :action => 'show' 

ustawić host, który jest potrzebny do korzystania z pomocników URL w widokach ActionMailer w plikach środowiska:

ActionMailer::Base.default_url_options[:host] = 'myhost.com' 

Co może być problemem? Dlaczego "specyfikacja rake" zachowuje się inaczej niż "spec spec"? Wszystko, co jest załadowane/nie jest załadowane podczas korzystania z jednego lub drugiego?

+0

działa nawet gdy wywoływany przez „Ruby specyfikacji/...”, więc to musi być coś z mojego środowiska natarcia/Rakefile. Zawartość mojego Rakefile nie została zmieniona ze standardowych rzeczy, które Rails mi podarował: require (File.join (File.dirname (__ FILE__), 'config', 'boot')) wymagają 'rake' require 'rake/testtask' wymagają 'rake/rdoctask' wymagają "zadań/torów" Proszę, każdy, zatracam swój umysł nad tym! –

+0

Moja odpowiedź została usunięta (dzięki uprzejmości @ bhargav-rao) jako duplikat http://stackoverflow.com/questions/15701298/rspec-spec-rake-spec-gives-different-result/41877864#41877864 –

Odpowiedz

1

Zdaję sobie sprawę, że jest to trochę stare, ale tak czy inaczej - po raz pierwszy wpadłem na ten sam problem, nie po raz pierwszy. Następnie, kiedy zacząłem wstawiać instrukcje debugowania do niespełniającej specyfikacji, aby dowiedzieć się, co się dzieje - specyfikacja rake działała ponownie. Podejrzewam, że buforowanie odbywa się, gdy spec jest zaangażowany w rake. W takim przypadku ponownie, może spróbować uruchomić

rake tmp:cache:clear 

lub nawet

rake tmp:clear 
Powiązane problemy