Как я могу сократить отставание для отказа теста в RSpec 2?
Когда мои спецификации попали в ошибку, я получаю следующее сообщение:
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, rails (3.0.3) и rspec (2.3.0). Файл конфигурации M.rspec имеет только два параметра:
- DRB --colour
Как отключить расширенную трассировку?
Ответы
Ответ 1
В spec_helper.rb
вы можете фильтровать обратную трассировку, используя следующий фрагмент кода:
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
Ответ 2
Я обновил его для работы с Rspec 3.2.3. В spec_helper.rb
поставьте:
RSpec.configure do |config|
config.backtrace_exclusion_patterns = [
/\/lib\d*\/ruby\//,
/bin\//,
/gems/,
/spec\/spec_helper\.rb/,
/lib\/rspec\/(core|expectations|matchers|mocks)/
]
end
Это чистое золото. Спасибо, luacassus!