2013-07-10 5 views
5

क्या कोई त्रुटि होने पर रुबी द्वारा प्रदान किए गए आउटपुट की मात्रा को कम करने का कोई तरीका है?मैं स्टैक ट्रेस में आउटपुट को कैसे कम करूं?

उदाहरण के लिए:

rspec bowling_spec.rb 
/Users/snowcrash/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- bowling (LoadError) 
    from /Users/snowcrash/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
    from /Users/snowcrash/Developer/Code/Ruby/RSpec/bowling_spec.rb:2:in `<top (required)>' 
    from /Users/snowcrash/.rvm/gems/ruby-2.0.0-p195/gems/rspec-core-2.14.2/lib/rspec/core/configuration.rb:896:in `load' 
    from /Users/snowcrash/.rvm/gems/ruby-2.0.0-p195/gems/rspec-core-2.14.2/lib/rspec/core/configuration.rb:896:in `block in load_spec_files' 
    from /Users/snowcrash/.rvm/gems/ruby-2.0.0-p195/gems/rspec-core-2.14.2/lib/rspec/core/configuration.rb:896:in `each' 
    from /Users/snowcrash/.rvm/gems/ruby-2.0.0-p195/gems/rspec-core-2.14.2/lib/rspec/core/configuration.rb:896:in `load_spec_files' 
    from /Users/snowcrash/.rvm/gems/ruby-2.0.0-p195/gems/rspec-core-2.14.2/lib/rspec/core/command_line.rb:22:in `run' 
    from /Users/snowcrash/.rvm/gems/ruby-2.0.0-p195/gems/rspec-core-2.14.2/lib/rspec/core/runner.rb:80:in `run' 
    from /Users/snowcrash/.rvm/gems/ruby-2.0.0-p195/gems/rspec-core-2.14.2/lib/rspec/core/runner.rb:17:in `block in autorun' 

सभी मैं में दिलचस्पी रखता हूँ पहली पंक्ति है, cannot load such file -- bowling (LoadError)। आदर्श रूप में मैं रुबी को from लाइनों के बाकी हिस्सों को थूकना नहीं चाहता हूं।

क्या यह संभव है?

+2

... क्यों? अधिक जानकारी अच्छी है, और आपको इसे पढ़ने के लिए मजबूर नहीं किया गया है। किसी दिन आपको एक त्रुटि मिलेगी जहां आप वास्तव में * एक स्टैक ट्रेस चाहते हैं। – meagar

+1

यह मूल्यवान स्क्रीन स्पेस लेता है और वास्तविक त्रुटि को पढ़ने में मुश्किल बनाता है। और जिस दिन मैं वास्तव में एक स्टैक ट्रेस चाहता हूं, मैं इसे कॉल करने के लिए एक स्विच चलाऊंगा। – Snowcrash

उत्तर

2
इस तरह

क्या कुछ:

module Kernel 
    at_exit do 
    case $! 
    when nil, SystemExit, Interrupt 
    else puts $!.message, [email protected] 
    end 
    $stderr.reopen(IO::NULL) 
    $stdout.reopen(IO::NULL) 
    end 
end 
+1

एक सुविधा के लिए एक संपूर्ण पुस्तकालय लोड करने से बेहतर! – vgoff

+2

यहां थोड़ा घना हो सकता है लेकिन मैं इसका उपयोग कैसे करूं? – Snowcrash

0

आप एक यूनिक्स/लिनक्स ओएस पर हैं, और आप कमांड लाइन से परीक्षण चला रहे हैं, आप कर सकते हैं

rspec bowling_spec.rb | head -n 20 

सुनिश्चित करने के लिए आपको अपनी त्रुटि देखने के लिए स्क्रॉल करने की आवश्यकता नहीं है।

संबंधित मुद्दे