2016-10-04 42 views
0

一直想詢問此一段時間了......如此頻繁,當我運行一個測試,我會得到這樣的錯誤:如何調試Rspec的某些錯誤

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: 

什麼是最好的方式找出代碼ActionView::Template::Error來自哪裏?使用完全回溯(-b)運行該規範並沒有真正的幫助,因爲它會調試測試失敗的原因,而不是我在代碼中遇到的錯誤。也去參考文件沒有幫助,因爲像...我得到的錯誤,我只是想知道在我的代碼中的方法被稱爲。

回答

0

RSpec的核心,您可以過濾掉個別寶石:

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

RSpec的護欄提供了更多的選擇,過濾掉所有的 「軌」 寶石(ActiveRecord的,ActionPack的等):

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

我不認爲我想過濾掉他們,但我想知道是什麼導致他們? – james

+0

過濾出軌道寶石使得它更容易在代碼中找到錯誤,因爲它將位於堆棧軌跡的頂部。 – max