Skip to main content

Backtrace filtering

The following configuration setting will filter out lines in backtraces that come from Rails gems in order to reduce the noise in test failure output:

RSpec.configure do |config|
config.filter_rails_from_backtrace!
end

rspec will always show the full backtrace output when run with the --backtrace commandline option.

Background (Using filter_rails_from_backtrace!)

Given a file named "spec/failing_spec.rb" with:

require "rails_helper"

RSpec.configure do |config|
config.filter_rails_from_backtrace!
end

RSpec.describe "Controller", type: :controller do
controller do
def index
raise "Something went wrong."
end
end

describe "GET index" do
it "raises an error" do
get :index
end
end
end

Using the bare rspec command

When I run rspec

Then the output should contain "1 example, 1 failure"

And the output should not contain "activesupport".

Using rspec --backtrace

When I run rspec --backtrace

Then the output should contain "1 example, 1 failure"

And the output should contain "activesupport".