2011-02-19 9 views
17

, ben bir mesaj bu hale:RSpec 2'de bir test hatası için backtrace'i nasıl kısaltabilirim? Benim gözlük bir hata vurduğunda

Vendor should reject duplicate names 
    Failure/Error: user_with_duplicate_email.should_not be_valid 
    expected valid? to return false, got true 
    # /home/kevin/.rvm/gems/[email protected]/gems/rspec-expectations-2.3.0/lib/rspec/expectations/fail_with.rb:29:in `fail_with' 
    # /home/kevin/.rvm/gems/[email protected]/gems/rspec-expectations-2.3.0/lib/rspec/expectations/handler.rb:44:in `handle_matcher' 
    # /home/kevin/.rvm/gems/[email protected]/gems/rspec-expectations-2.3.0/lib/rspec/expectations/extensions/kernel.rb:50:in `should_not' 
. 
. 
about 15 more lines 
. 
. 
    # /home/kevin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1592:in `block (2 levels) in main_loop' 
    # /home/kevin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1588:in `loop' 
    # /home/kevin/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1588:in `block in main_loop' 

Ruby 1.0.2 koşuyorum, raylar (3.0.3) ve RSpec (2.3.0). M .rspec yapılandırma dosyası belirtilen yalnızca iki seçenek vardır:

--drb --colour

nasıl genişletilmiş iz kapatabilirim? spec_helper.rb yılında

cevap

13

aşağıdaki kod parçacığını kullanarak backtrace filtreleyebilirsiniz: Ben RSpec 3.2.3 ile çalışmak için güncellemiş

RSpec.configure do |config| 
    # RSpec automatically cleans stuff out of backtraces; 
    # sometimes this is annoying when trying to debug something e.g. a gem 

    # RSpec 3: 
    # config.backtrace_exclusion_patterns = [ 
    # RSpec 2: 
    config.backtrace_clean_patterns = [ 
    /\/lib\d*\/ruby\//, 
    /bin\//, 
    /gems/, 
    /spec\/spec_helper\.rb/, 
    /lib\/rspec\/(core|expectations|matchers|mocks)/ 
    ] 
end 
+0

RSpec 3'te denendi, mükemmel çalışıyor. – Kris

3

. spec_helper.rb'da:

RSpec.configure do |config| 
    config.backtrace_exclusion_patterns = [ 
    /\/lib\d*\/ruby\//, 
    /bin\//, 
    /gems/, 
    /spec\/spec_helper\.rb/, 
    /lib\/rspec\/(core|expectations|matchers|mocks)/ 
    ] 
end 

Bu saf altındır. Teşekkür ederim luacassus!

+0

Bu neden benim için çalışmıyor? Kod yüklerini biliyorum çünkü '' BURADA '' bu yapılandırmanın üzerine 'BURADA' koydum ve onu görüyorum, ama yine de süper uzun backtrace elde ediyorum. –

İlgili konular