🔖

Rspec Rails の filter_rails_from_backtrace! とはなにか

2023/08/25に公開
# Filter lines from Rails gems in backtraces.

Rspec がエラーを検出したときに表示する backtrace から rails 関係の gem に入っているファイルたちを削減します。書いてるやんけ。


https://github.com/rspec/rspec-rails/blob/6-0-maintenance/lib/rspec/rails/configuration.rb#L155

# Adds exclusion filters for gems included with Rails
def filter_rails_from_backtrace!
  filter_gems_from_backtrace "actionmailer", "actionpack", "actionview"
  filter_gems_from_backtrace "activemodel", "activerecord",
                             "activesupport", "activejob"
end

内部的には filter_gems_from_backtrace をコールしているだけのようです。

filter_gems_from_backtrace についてはドキュメントにあります。

https://rubydoc.info/github/rspec/rspec-core/RSpec/Core/Configuration#filter_gems_from_backtrace-instance_method

rails generate rspec:install すると spec/rails_helper.rbconfig.filter_rails_from_backtrace! が書かれています。デフォルトで rails のバックトレースは表示しないようになってますね。

ちなみに filter_gems_from_backtrace を無効にしてすべての backtrace を表示したいときは --backtrace オプションをつけて rspec を実行します。

Discussion