[rspec-users] Unable to get rid of backtrace when running specs (rspec2, rails3)

David Chelimsky dchelimsky at gmail.com
Tue Oct 5 19:44:19 EDT 2010


On Oct 5, 2010, at 6:19 PM, Katrina Owen wrote:

> Hi,
> 
> I can't seem to silence the stack trace when running specs.
> 
> Pending specs get this output:
> 
> ChannelsController GET new responds to xml
>  # why would we want to render xml for Channel.new?
>  # ./spec/controllers/channel_controller_spec.rb:89
> 
> Failing specs get this:
> 
> Failures:
>  1) ChannelsController POST create failing example
>     Failure/Error: post :create, {:channel => channel}
>     undefined method `save' for nil:NilClass
>     # /gems/activesupport-3.0.0/lib/active_support/whiny_nil.rb:48:in
> `method_missing'
>          .
>          . ( 30 or so more lines )
>          .
>     # /gems/spork-0.8.4/lib/spork/server.rb:47:in `run'
> 
> 
> Here's what I have so far:
> 
> I've grepped through my project to check whether something is setting
> the --backtrace option, but as far as I can tell, it's not set.
> I also did
>> cd myproject; grep -lre '-b'
> which matched a bunch of temporary files and binary files, but nothing
> that seemed remotely relevant.
> 
> The command I am using to kick off the tests is
> 
>> rspec --drb spec
> 
> I've tried running the tests in several ways: with and without
> spork/DRb, and by calling each of these:
>> rspec spec
>> rake spec
>> bundle exec rspec spec
> All of these give me a noisy backtrace.
> 
> Interestingly, when I use rake, the full rails environment gets loaded
> twice. I haven't figured that one out yet, either.
> 
> Here are as many of the environment variables as I can think might be relevant:
> 
>> cat .rspec
> --colour
> --format progress
> 
>> ruby -v
> ruby 1.9.2p14 (2010-10-02 revision 29393) [x86_64-darwin10.4.0]
> 
>> rvm -v
> rvm 1.0.12
> 
>> gem list
> *** LOCAL GEMS ***
> abstract (1.0.0)
> actionmailer (3.0.0)
> actionpack (3.0.0)
> activemodel (3.0.0)
> activerecord (3.0.0)
> activeresource (3.0.0)
> activesupport (3.0.0)
> acts_as_state_machine (2.2.0)
> arel (1.0.1)
> autotest (4.4.1)
> aws-s3 (0.6.2)
> builder (2.1.2)
> bundler (1.0.1)
> commonwatir (1.6.5)
> compass (0.10.5)
> cucumber (0.9.2)
> cucumber-rails (0.3.2)
> diff-lcs (1.1.2)
> erubis (2.6.6)
> firewatir (1.6.5)
> gherkin (2.2.8)
> haml (3.0.21)
> hoe (2.6.2)
> httpclient (2.1.5.2)
> i18n (0.4.1)
> jquery-rails (0.2.1)
> json (1.4.6)
> json_pure (1.4.6)
> mail (2.2.6.1)
> mime-types (1.16)
> nokogiri (1.4.3.1)
> paperclip (2.3.3)
> pg (0.9.0)
> polyglot (0.3.1)
> rack (1.2.1)
> rack-mount (0.6.13)
> rack-test (0.5.6)
> rails (3.0.0)
> railties (3.0.0)
> rake (0.8.7)
> rspec (2.0.0.rc)
> rspec-core (2.0.0.rc)
> rspec-expectations (2.0.0.rc)
> rspec-mocks (2.0.0.rc)
> rspec-rails (2.0.0.rc)
> rubyforge (2.0.4)
> s4t-utils (1.0.4)
> spork (0.8.4)
> term-ansicolor (1.0.5)
> thor (0.14.2)
> treetop (1.4.8)
> tzinfo (0.3.23)
> user-choices (1.1.6.1)
> watchr (0.7)
> webrat (0.7.1)
> will_paginate (2.3.15)
> xml-simple (1.0.12)
> 
>> gem environment
> RubyGems Environment:
>  - RUBYGEMS VERSION: 1.3.7
>  - RUBY VERSION: 1.9.2 (2010-10-02 patchlevel 14) [x86_64-darwin10.4.0]
>  - INSTALLATION DIRECTORY: <snip>/.rvm/gems/ruby-1.9.2-head at prq
>  - RUBY EXECUTABLE: <snip>/.rvm/rubies/ruby-1.9.2-head/bin/ruby
>  - EXECUTABLE DIRECTORY: <snip>/.rvm/gems/ruby-1.9.2-head at prq/bin
>  - RUBYGEMS PLATFORMS:
>    - ruby
>    - x86_64-darwin-10
>  - GEM PATHS:
>     - <snip>/.rvm/gems/ruby-1.9.2-head at prq
>     - <snip>/.rvm/gems/ruby-1.9.2-head at global
>  - GEM CONFIGURATION:
>     - :update_sources => true
>     - :verbose => true
>     - :benchmark => false
>     - :backtrace => false
>     - :bulk_threshold => 1000
>     - "install" => "--no-rdoc --no-ri"
>     - "update" => "--no-rdoc --no-ri"
>  - REMOTE SOURCES:
>     - http://rubygems.org/
> 
> Any idea whether there are gems that set some configuration options
> that would turn the --backtrace option on for rspec?
> 
> I'm not sure where to look next, and would be grateful for any
> suggestions/pointers!

This needs some docs, but there is a configuration option called backtrace_clean_patterns that you can append to:

RSpec::configure do |c|
  backtrace_clean_patterns << /gems\//
end

Maybe we should make that part of the default list?

HTH,
David


More information about the rspec-users mailing list