How to get rspec-2 to give the full trace associated with a test failure?
Right now if I run my test suite using rake spec
I get an error:
1) SegmentsController GET 'index' should work Failure/Error: get 'index' undefined method `locale' for # # ./spec/controllers/segments_controller_spec.rb:14: in `block (3 levels) in '
This is normal as I do have an error :)
The problem is that the trace isn't very helpful. I know it broke in segments_controller_spec.rb
, line 14, but this is just where I call the test:
### segments_controller_spec.rb:14
get 'index'
I would prefer to have the actual line breaking and the complete trace, not the part in the spec folder.
Running with --trace
doesn't help.
You must run rspec with -b
option to see full backtraces
Another (easier) alternative is to edit the .rspec
file, and add the backtrace
option.
It should look somewhat like this:
--colour
--backtrace
That will give you the full backtrace. Hope this helps.
This will also work:
# rails_helper.rb
RSpec.configure do |config|
config.full_backtrace = true
end
Another approach is to clear all backtrace exclusion patterns in spec_helper.rb
. I like this solution most as I'm able to keep all RSpec settings in one place and get rid of .rspec file
or explicit --backtrace
in .travis.yml
.
# spec_helper.rb
RSpec.configure do |config|
config.backtrace_exclusion_patterns = []
end