2016-10-04 3 views
0

haben für diese für eine Weile jetzt ... so oft fragen gefehlt, wenn ich einen Test laufen einen Fehler wie diese werde ich erhalten:Wie bestimmte Fehler in Rspec debuggen

bundle exec rspec spec/features/admin/2_email_maintenances_spec.rb:32 -b 
Run options: include {:locations=>{"./spec/features/admin/2_email_maintenances_spec.rb"=>[32]}} 

An error occurred in an after hook 
    ActionView::Template::Error: wrong number of arguments (1 for 0) 
    occurred at /Users/jamesdong/.rvm/gems/ruby-2.1.2/gems/activerecord-4.1.1/lib/active_record/attribute_methods.rb:45:in `__temp__079636b65707f53747162747' 

F 

Failures: 

Was ist der beste Weg, um herauszufinden, wo im Code die herkommt? Das Ausführen der Spezifikation mit einem vollständigen Backtrace (-b) hilft nicht wirklich, da debuggt, warum der Test fehlschlug, nicht die Fehler, die ich im Code bekomme. Auch die referenzierte Datei hilft nicht weiter, denn wie ... bekomme ich den Fehler, ich möchte nur wissen wo in meinem Code die Methode aufgerufen wurde.

Antwort

0

RSpec-Core können Sie einzelne Edelsteine ​​herausfiltern:

# arbitrary gems may also be filtered via: 
config.filter_gems_from_backtrace("active_record") 

RSpec-Schienen bietet eine zusätzliche Option, um alle "Schienen" Edelsteine, um herauszufiltern (Active, Action etc.):

# Filter lines from Rails gems in backtraces. 
config.filter_rails_from_backtrace! 
+0

ich glaube nicht, dass ich sie herausfiltern will ... ich will herausfinden, was sie verursacht? – james

+0

Das Herausfiltern der Schienen-Edelsteine ​​macht es viel einfacher, den Fehler in Ihrem Code zu finden, da er oben im Stack-Trace liegt. – max