The error during tests execution
Created by: Riddlerrr
Subject of the issue
When I executed tests where raised custom Exception RSpec is failed with status 0. Thus CI think that tests are ok and we have a false positive issue.
I faced with it in a real project which uses connect-sdk-ruby
gem, this exception was raised.
Your environment
- Ruby version: 2.6.5
- rspec-core version: latest master (revision da87aa0c)
Steps to reproduce
- Clone my repository https://github.com/Riddlerrr/rspec-exception-issue
- Run
bundle exec rspec exception_spec.rb
Expected behavior
RSpec should print failures. For example:
Failures:
1) Test exeption successfully output exeption
Failure/Error: raise RuntimeError.new("RSpec error")
RuntimeError:
RSpec error
# ./exception_spec.rb:20:in `block (2 levels) in <top (required)>'
Actual behavior
bundler: failed to load command: rspec (/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bin/rspec)
NoMethodError: undefined method `cause' for "RSpec error":String
Did you mean? case
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/formatters/exception_presenter.rb:98:in `final_exception'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/formatters/exception_presenter.rb:101:in `final_exception'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/formatters/exception_presenter.rb:46:in `formatted_cause'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/formatters/exception_presenter.rb:41:in `formatted_backtrace'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/formatters/exception_presenter.rb:72:in `colorized_formatted_backtrace'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/formatters/exception_presenter.rb:240:in `formatted_message_and_backtrace'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/formatters/exception_presenter.rb:86:in `fully_formatted_lines'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/formatters/exception_presenter.rb:78:in `fully_formatted'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/notifications.rb:200:in `fully_formatted'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/notifications.rb:114:in `block in fully_formatted_failed_examples'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/notifications.rb:113:in `each'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/notifications.rb:113:in `each_with_index'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/notifications.rb:113:in `fully_formatted_failed_examples'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/formatters/base_text_formatter.rb:32:in `dump_failures'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/reporter.rb:209:in `block in notify'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/reporter.rb:208:in `each'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/reporter.rb:208:in `notify'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/reporter.rb:178:in `block in finish'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/reporter.rb:194:in `close_after'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/reporter.rb:174:in `finish'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/reporter.rb:76:in `report'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/runner.rb:115:in `run_specs'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/runner.rb:89:in `run'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/runner.rb:71:in `run'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/lib/rspec/core/runner.rb:45:in `invoke'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bundler/gems/rspec-core-da87aa0c5f25/exe/rspec:4:in `<top (required)>'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bin/rspec:23:in `load'
/Users/sergey/.asdf/installs/ruby/2.6.5/lib/ruby/gems/2.6.0/bin/rspec:23:in `<top (required)>'