GithubHelp home page GithubHelp logo

tpope / fivemat Goto Github PK

View Code? Open in Web Editor NEW
244.0 244.0 21.0 34 KB

MiniTest/RSpec/Cucumber formatter that gives each test file its own line of dots

Home Page: http://rubygems.org/gems/fivemat

License: MIT License

Ruby 100.00%

fivemat's People

Contributors

benpickles avatar cgriego avatar juanitofatas avatar lazyatom avatar myronmarston avatar reiz avatar tpope avatar xaviershay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

fivemat's Issues

"Undefined method pending_fixed?" when an example fails

  * factory_girl_rspec (0.0.2)
  * fivemat (1.3.0)
  * rspec (3.0.0.beta2)
  * rspec-collection_matchers (0.0.3)
  * rspec-core (3.0.0.beta2)
  * rspec-expectations (3.0.0.beta2)
  * rspec-given (2.4.5)
  * rspec-mocks (3.0.0.beta2)
  * rspec-rails (3.0.0.beta2)
  * rspec-support (3.0.0.beta2)

Reproducing test case:

require 'rspec'                                  
require 'fivemat'                                

describe "a pending test that fails" do          
  pending "should not cause fivemat to crash" do 
    raise "Hello"                                
  end                                            
end                                              

describe "a pending test that passes" do         
  pending "this fails!" do                       
    expect(true).to eql(true)                    
  end                                            
end                                              

describe "a failing test" do                     
  specify "should not cause fivemat to crash" do 
    raise "Hello"                                
  end                                            
end                                              
a pending test that fails *
a pending test that passes F

Finished in 0.00093 seconds
2 examples, 1 failure, 1 pending
/home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/fivemat-1.3.0/lib/fivemat/rspec3.rb:61:in `pending_fixed?': undefined method `pending_fixed?' for #<Hash:0x007fcc22bd3ad0> (NoMethodError)
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/fivemat-1.3.0/lib/fivemat/rspec3.rb:47:in `block in example_group_finished'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/fivemat-1.3.0/lib/fivemat/rspec3.rb:46:in `each'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/fivemat-1.3.0/lib/fivemat/rspec3.rb:46:in `each_with_index'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/fivemat-1.3.0/lib/fivemat/rspec3.rb:46:in `example_group_finished'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/reporter.rb:114:in `block in notify'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/reporter.rb:113:in `each'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/reporter.rb:113:in `notify'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/reporter.rb:67:in `example_group_finished'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/example_group.rb:442:in `run'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/command_line.rb:27:in `block (2 levels) in run'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/command_line.rb:27:in `map'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/command_line.rb:27:in `block in run'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/reporter.rb:47:in `report'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/command_line.rb:24:in `run'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/runner.rb:100:in `run'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/lib/rspec/core/runner.rb:31:in `invoke'
        from /home/matt/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rspec-core-3.0.0.beta2/exe/rspec:4:in `<top (required)>'
        from /home/matt/.rbenv/versions/2.0.0-p353/bin/rspec:23:in `load'
        from /home/matt/.rbenv/versions/2.0.0-p353/bin/rspec:23:in `<main>'

Starting a pry REPL on the line before the error is raised reveals that the pending_fixed? helper only seems to get invoked when a test fails, not when it's pending but passes. As the error implies, execution_result is a hash in the following format:

=> {:started_at=>2014-04-24 00:01:06 +0100,
 :pending_message=>"No reason given",
 :pending_fixed=>true,
 :exception=>
  #<RSpec::Core::Pending::PendingExampleFixedError: Expected example to fail since it is pending, but it passed.>,
 :status=>"failed",
 :finished_at=>2014-04-24 00:01:06 +0100,
 :run_time=>0.000496886}

fivemat-1.2.1/lib/fivemat/rspec.rb:47:in `pending_fixed?': uninitialized constant RSpec::Core::PendingExampleFixedError (NameError)

I suddenly have this error after upgrading Rspec to the latest stable:

/Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/fivemat-1.2.1/lib/fivemat/rspec.rb:47:in pending_fixed?': uninitialized constant RSpec::Core::PendingExampleFixedError (NameError) from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/formatters/base_text_formatter.rb:24:inblock in dump_failures'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/formatters/base_text_formatter.rb:22:in each' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/formatters/base_text_formatter.rb:22:ineach_with_index'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/formatters/base_text_formatter.rb:22:in dump_failures' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/reporter.rb:127:inblock in notify'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/reporter.rb:126:in each' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/reporter.rb:126:innotify'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/reporter.rb:109:in finish' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/reporter.rb:60:inensure in report'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/reporter.rb:60:in report' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/command_line.rb:25:inrun'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/rspec-core-2.14.6/lib/rspec/core/runner.rb:80:in run' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus/rails.rb:198:intest'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:116:in block in command' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:103:infork'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:103:in command' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:80:inblock (3 levels) in go'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:80:in fork' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:80:inblock (2 levels) in go'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:73:in each' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:73:inblock in go'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:62:in loop' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:62:ingo'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:78:in block (3 levels) in go' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:78:infork'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:78:in block (2 levels) in go' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:73:ineach'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:73:in block in go' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:62:inloop'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:62:in go' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:78:inblock (3 levels) in go'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:78:in fork' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:78:inblock (2 levels) in go'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:73:in each' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:73:inblock in go'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:62:in loop' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:62:ingo'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:78:in block (3 levels) in go' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:78:infork'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:78:in block (2 levels) in go' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:73:ineach'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:73:in block in go' from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:62:inloop'
from /Users/example/.rvm/gems/ruby-2.0.0-p247@example/gems/zeus-0.13.4.pre2/lib/zeus.rb:62:in go' from -e:1:in

'

Compatible with spin

I use spin gem and now I have error:

โžœ  seopl git:(master) spin serve
/Users/accessd/projects/seopl/vendor/bundle/gems/fivemat-1.3.0/lib/fivemat.rb:11:in 'rspec3?': uninitialized constant RSpec::Core (NameError)

Possible there is need require 'rspec/core'?

Not working with minitest v4.7.0 on rails 3.2

Hello, I'm trying to use Fivemat with minitest, unfortunately this is an old version v4.7.0 and upgrade to 5.x is impossible at the moment.

I changed the require 'minitest/autorun' to require 'fivemat/minitest/autorun' and also the require 'fivemat/minitest' to test/test_helper.rb but I don't see any change in the output (still using the default formatter).

Any help is appreciated,
Thanks!

Mario

Tapout

This format is a pretty good idea. Would you consider creating a rendition for tapout?

undefined method `pending_fixed?' for #<Fivemat::RSpec:0x8e1e88c>

Everything is fine when tests are passing, but if there are failures, I get the following error upon completion of a group.

fivemat-1.0.0/lib/fivemat/rspec.rb:24:in block in example_group_finished': undefined methodpending_fixed?' for #Fivemat::RSpec:0x8e1e88c (NoMethodError)

This is with Rails 3.0.7 and Rspec 2.6.3

Broken for cucumber 2.x

If a users uses cucumber 2.x, it does not work, but raises an error, because cucumber 2.x ahs a new api for reporters.

@tdreyno Using middleman with cucumber 2.x + fivemat fails, if a feature-test fails with the following error.

......super: no superclass method `exception' for #<Fivemat::Cucumber:0x000000037dcb18> (NoMethodError)
/home/user/.gem/ruby/2.2.2/gems/fivemat-1.3.1/lib/fivemat/cucumber.rb:29:in `exception'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/formatter/ignore_missing_messages.rb:10:in `method_missing'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/formatter/legacy_api/adapter.rb:997:in `describe_exception_to'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/formatter/legacy_api/adapter.rb:244:in `after_test_case'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/formatter/legacy_api/adapter.rb:86:in `after_test_case'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/formatter/legacy_api/adapter.rb:38:in `after_test_case'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/formatter/fanout.rb:16:in `block in method_missing'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/formatter/fanout.rb:15:in `each'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/formatter/fanout.rb:15:in `method_missing'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/runner.rb:18:in `test_case'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/case.rb:21:in `describe_to'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/filters/prepare_world.rb:11:in `test_case'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/case.rb:21:in `describe_to'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/filters/apply_around_hooks.rb:8:in `test_case'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/case.rb:21:in `describe_to'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/filters/apply_after_hooks.rb:5:in `test_case'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/case.rb:21:in `describe_to'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/filters/apply_before_hooks.rb:5:in `test_case'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/case.rb:21:in `describe_to'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/filters/apply_after_step_hooks.rb:8:in `test_case'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/case.rb:21:in `describe_to'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/filters/activate_steps.rb:8:in `test_case'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/case.rb:21:in `describe_to'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/filters/quit.rb:11:in `test_case'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/case.rb:21:in `describe_to'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/filters/locations_filter.rb:17:in `block in done'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/filters/locations_filter.rb:16:in `each'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/filters/locations_filter.rb:16:in `done'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/filter.rb:61:in `done'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/test/filters/tag_filter.rb:18:in `done'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/compiler.rb:23:in `done'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core/gherkin/parser.rb:31:in `done'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core.rb:29:in `parse'
/home/user/.gem/ruby/2.2.2/gems/cucumber-core-1.2.0/lib/cucumber/core.rb:18:in `compile'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/runtime.rb:70:in `run!'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/lib/cucumber/cli/main.rb:38:in `execute!'
/home/user/.gem/ruby/2.2.2/gems/cucumber-2.0.2/bin/cucumber:9:in `<main>'

Failing when using Dir.mktmpdir in spec

Hi, I am getting the following error when I tried to use the fivemat formatter (Win 7, Ruby 2.2+, Rspec 3.7+)

Failure/Error:
       Dir.mktmpdir do |dir|
...
...
NoMethodError:
       undefined method `mktmpdir' for Dir:Class

The specs run fine with the default formatter, and I am not able to find any namespace conflicts.
Any idea, anyone?

Not accurate results with Parallel_tests gem

It looks like this formatter doesn't correctly report test duration when run under parallel_tests. Parallel_tests takes scenarios in different order and can run arbitrary scenarios that are not part of the current feature file. Does Fivemat account for this?

RSpec::Core::Formatters::BaseTextFormatter#blue is deprecated

*****************************************************************
DEPRECATION WARNING: you are using deprecated behaviour that will
be removed from rspec-3.0.

/gems/fivemat-1.2.1/lib/fivemat/rspec.rb:53:in `dump_pending_fixed'

* RSpec::Core::Formatters::BaseTextFormatter#blue is deprecated.
* please use #fixed_color instead.
*****************************************************************

fivemat.rb:12:in `new': ArgumentError (ArgumentError)

Hello, I'm trying to implement this in my rails 2 app,
So, I've changed the .rspec, cucumber.yml, Gemfile,
Cucumber tests works fine, but I'm getting an error with Rspec.

$ bundle exec rake:

/Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/fivemat-1.0.0/lib/fivemat.rb:12:in `new': ArgumentError (ArgumentError)
  from /Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/options.rb:247:in `load_formatters'
  from /Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/options.rb:240:in `map'
  from /Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/options.rb:240:in `load_formatters'
  from /Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/options.rb:236:in `formatters'
  from /Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/reporter.rb:111:in `formatters'
  from /Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/reporter.rb:50:in `start'
  from /Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/example_group_runner.rb:32:in `prepare'
  from /Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/example_group_runner.rb:20:in `run'
  from /Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/options.rb:153:in `run_examples'
  from /Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/rspec-1.3.2/lib/spec/runner/command_line.rb:9:in `run'
  from /Users/mariozaizar/.rbenv/versions/ree-1.8.7-2011.12/lib/ruby/gems/1.8/gems/rspec-1.3.2/bin/spec:5
rake aborted!

Fivemat tracebacks when a test fails under Rails 5.2.3

Converting a Rails app from 4.2.11 to 5.2.3 (Ruby 2.6.3) I am having a problem with Fivemat wherein it fails and outputs a traceback when any test in the test suite fails. It works fine when all the tests pass.

I created a simple test to show this:

RSpec.describe "something" do
  it "does something that passes" do
    expect(5).to eq(5)
  end

  it "does something that fails" do
    expect(5).to eq(4)
  end

  it "does something that is pending", :pending => true do
    expect(5).to be < 3
  end

  it "does something that is skipped", :skip => true do
    expect(5).to be < 3
  end
end

If we remove the "does something that fails" test, we get what we expect:

17:40:51 - INFO - Running: spec/example_spec.rb
Running via Spring preloader in process 96351
Run options: exclude {:slow=>true}

Randomized with seed 15663
something **.

Finished in 0.03158 seconds (files took 0.22213 seconds to load)
3 examples, 0 failures, 2 pending

Randomized with seed 15663
[1] guard(main)>

However, if we put back that test and it fails (as expected), we get:

17:42:36 - INFO - Running: spec/example_spec.rb
Running via Spring preloader in process 96254
Run options: exclude {:slow=>true}

Randomized with seed 46191
something **.F

Finished in 0.03747 seconds (files took 0.18493 seconds to load)
4 examples, 1 failure, 2 pending

Failed examples:

rspec ./spec/example_spec.rb:6 # something does something that fails

Randomized with seed 46191
Traceback (most recent call last):
        46: from -e:1:in `<main>'
        45: from /Users/username/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        44: from /Users/username/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        43: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/spring-2.1.0/lib/spring/application/boot.rb:19:in `<top (required)>'
        42: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/spring-2.1.0/lib/spring/application.rb:139:in `run'
        41: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/spring-2.1.0/lib/spring/application.rb:139:in `loop'
        40: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/spring-2.1.0/lib/spring/application.rb:145:in `block in run'
        39: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/spring-2.1.0/lib/spring/application.rb:175:in `serve'
        38: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/spring-2.1.0/lib/spring/application.rb:175:in `fork'
        37: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/spring-2.1.0/lib/spring/application.rb:215:in `block in serve'
        36: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/spring-2.1.0/lib/spring/command_wrapper.rb:38:in `call'
        35: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/spring-commands-rspec-1.0.4/lib/spring/commands/rspec.rb:18:in `call'
        34: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:285:in `load'
        33: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:257:in `load_dependency'
        32: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:285:in `block in load'
        31: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
        30: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
        29: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/exe/rspec:4:in `<main>'
        28: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:45:in `invoke'
        27: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:71:in `run'
        26: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:89:in `run'
        25: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:115:in `run_specs'
        24: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:74:in `report'
        23: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:116:in `block in run_specs'
        22: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/configuration.rb:2031:in `with_suite_hooks'
        21: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
        20: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:121:in `map'
        19: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
        18: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/example_group.rb:607:in `run'
        17: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:123:in `example_group_finished'
        16: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:208:in `notify'
        15: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:208:in `each'
        14: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:209:in `block in notify'
        13: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:51:in `example_group_finished'
        12: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:51:in `each_with_index'
        11: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:51:in `each'
        10: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:52:in `block in example_group_finished'
         9: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/notifications.rb:200:in `fully_formatted'
         8: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:78:in `fully_formatted'
         7: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:86:in `fully_formatted_lines'
         6: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:240:in `formatted_message_and_backtrace'
         5: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:34:in `colorized_message_lines'
         4: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:149:in `failure_lines'
         3: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:149:in `tap'
         2: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:150:in `block in failure_lines'
         1: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:163:in `failure_slash_error_lines'
/Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:218:in `read_failed_lines': undefined method `extract_expression_lines_at' for RSpec::Core::Formatters::SnippetExtractor:Class (NoMethodError)
        39: from -e:1:in `<main>'
        38: from /Users/username/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        37: from /Users/username/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        36: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/spring-commands-rspec-1.0.4/lib/spring/commands/rspec.rb:18:in `call'
        35: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
        34: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
        33: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/exe/rspec:4:in `<main>'
        32: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:45:in `invoke'
        31: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:71:in `run'
        30: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:89:in `run'
        29: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:115:in `run_specs'
        28: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:74:in `report'
        27: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:116:in `block in run_specs'
        26: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/configuration.rb:2031:in `with_suite_hooks'
        25: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
        24: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:121:in `map'
        23: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
        22: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/example_group.rb:607:in `run'
        21: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:123:in `example_group_finished'
        20: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:208:in `notify'
        19: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:208:in `each'
        18: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:209:in `block in notify'
        17: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:51:in `example_group_finished'
        16: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:51:in `each_with_index'
        15: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:51:in `each'
        14: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:52:in `block in example_group_finished'
        13: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/notifications.rb:200:in `fully_formatted'
        12: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:78:in `fully_formatted'
        11: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:86:in `fully_formatted_lines'
        10: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:240:in `formatted_message_and_backtrace'
         9: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:34:in `colorized_message_lines'
         8: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:149:in `failure_lines'
         7: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:149:in `tap'
         6: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:150:in `block in failure_lines'
         5: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:163:in `failure_slash_error_lines'
         4: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:204:in `read_failed_lines'
         3: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:220:in `rescue in read_failed_lines'
         2: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/active_support.rb:59:in `load_missing_constant'
         1: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/active_support.rb:16:in `allow_bootsnap_retry'
/Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/active_support.rb:60:in `block in load_missing_constant': uninitialized constant RSpec::Core::Formatters::SnippetExtractor::NoSuchFileError (NameError)
        40: from -e:1:in `<main>'
        39: from /Users/username/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        38: from /Users/username/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        37: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/spring-commands-rspec-1.0.4/lib/spring/commands/rspec.rb:18:in `call'
        36: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
        35: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
        34: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/exe/rspec:4:in `<main>'
        33: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:45:in `invoke'
        32: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:71:in `run'
        31: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:89:in `run'
        30: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:115:in `run_specs'
        29: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:74:in `report'
        28: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:116:in `block in run_specs'
        27: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/configuration.rb:2031:in `with_suite_hooks'
        26: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
        25: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:121:in `map'
        24: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
        23: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/example_group.rb:607:in `run'
        22: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:123:in `example_group_finished'
        21: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:208:in `notify'
        20: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:208:in `each'
        19: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/reporter.rb:209:in `block in notify'
        18: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:51:in `example_group_finished'
        17: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:51:in `each_with_index'
        16: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:51:in `each'
        15: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/fivemat-1.3.7/lib/fivemat/rspec3.rb:52:in `block in example_group_finished'
        14: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/notifications.rb:200:in `fully_formatted'
        13: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:78:in `fully_formatted'
        12: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:86:in `fully_formatted_lines'
        11: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:240:in `formatted_message_and_backtrace'
        10: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:34:in `colorized_message_lines'
         9: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:149:in `failure_lines'
         8: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:149:in `tap'
         7: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:150:in `block in failure_lines'
         6: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:163:in `failure_slash_error_lines'
         5: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:204:in `read_failed_lines'
         4: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/rspec-core-3.9.0/lib/rspec/core/formatters/exception_presenter.rb:220:in `rescue in read_failed_lines'
         3: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/active_support.rb:58:in `load_missing_constant'
         2: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/active_support.rb:79:in `rescue in load_missing_constant'
         1: from /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/active_support.rb:8:in `without_bootsnap_cache'
/Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/active_support.rb:79:in `block in load_missing_constant': uninitialized constant RSpec::Core::Formatters::SnippetExtractor::NoSuchFileError (NameError)
17:42:37 - ERROR - Failed: "bundle exec spring rspec -f Fivemat -r /Users/username/.rvm/gems/ruby-2.6.3@myRailsApp/gems/guard-rspec-4.7.3/lib/guard/rspec_formatter.rb -f Guard::RSpecFormatter --failure-exit-code 2  spec/example_spec.rb" (exit code: 1)

Running this test using the "progress" format works as expected:

17:51:52 - INFO - Running: spec/example_spec.rb
Running via Spring preloader in process 3629
Run options: exclude {:slow=>true}

Randomized with seed 60797

F*.*

Pending:
  something does something that is pending
    # No reason given
    # ./spec/example_spec.rb:10
  something does something that is skipped
    # No reason given
    # ./spec/example_spec.rb:14

Failures:

  1) something does something that fails
     Failure/Error: expect(5).to eq(4)

       expected: 4
            got: 5

       (compared using ==)
     # ./spec/example_spec.rb:7:in `block (2 levels) in <main>'
     # -e:1:in `<main>'

Finished in 0.03176 seconds
4 examples, 1 failure, 2 pending

Failed examples:

rspec ./spec/example_spec.rb:6 # something does something that fails

Randomized with seed 60797

Running this test using the "documentation" format works as expected:

17:54:01 - INFO - Running: spec/example_spec.rb
Running via Spring preloader in process 4170
Run options: exclude {:slow=>true}

Randomized with seed 4267


something
  does something that is pending (PENDING: No reason given)
  does something that passes
  does something that is skipped (PENDING: No reason given)
  does something that fails (FAILED - 1)

Pending:
  something does something that is pending
    # No reason given
    # ./spec/example_spec.rb:10
  something does something that is skipped
    # No reason given
    # ./spec/example_spec.rb:14

Failures:

  1) something does something that fails
     Failure/Error: expect(5).to eq(4)

       expected: 4
            got: 5

       (compared using ==)
     # ./spec/example_spec.rb:7:in `block (2 levels) in <main>'
     # -e:1:in `<main>'

Finished in 0.03444 seconds
4 examples, 1 failure, 2 pending

Failed examples:

rspec ./spec/example_spec.rb:6 # something does something that fails

Randomized with seed 4267

I was able to reproduce this in a clean, new Rails 5.2.3 app. using Ruby 2.6.3

Not sure how to go about troubleshooting this.

Minitest 5+ compatibility

> bundle
Resolving dependencies...
Using fivemat 1.2.1
Using minitest 5.3.1
Using bundler 1.6.0
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
> bundle exec ruby test.rb
/Users/xavier/.gem/ruby/2.1.0/gems/fivemat-1.2.1/lib/fivemat/minitest.rb:3:in `<top (required)>': undefined method `runner=' for Minitest::Unit:Class (NoMethodError)
        from /Users/xavier/.gem/ruby/2.1.0/gems/fivemat-1.2.1/lib/fivemat/minitest/autorun.rb:2:in `require'
        from /Users/xavier/.gem/ruby/2.1.0/gems/fivemat-1.2.1/lib/fivemat/minitest/autorun.rb:2:in `<top (required)>'
        from test.rb:1:in `require'
        from test.rb:1:in `<main>'

Using the following files:

source 'https://rubygems.org'
gem 'fivemat'
gem 'minitest', '~> 5'
require 'fivemat/minitest/autorun'

class TestWorking < MiniTest::Unit::TestCase
  def test_works
    assert_equal 1, 1
  end
end

Changing ~> 5 to ~> 4 (or using the version bundled in stdlib) works fine.

I'm not going to be fixing this because I don't use minitest. I noticed it while testing some RSpec changes hadn't broken anything.

No Instruction for Rails

Readme not have section how to make this gem work with rails default test unit framework. And it not work if just add it to Gemfile.

Gives formatter deprecation warning when using zeus

When running specs via zeus the specs are run using the default progress formatter and the deprecation warning is shown, saying I need to use the legacy formatters gem. If I run my specs using rspec directly, I do not have this issue.

RSpec 3 compatibility?

Deprecation Warnings:

 The Fivemat formatter uses the deprecated formatter interface not supported directly by RSpec 3.  To continue to use this formatter you must install the `rspec-legacy_formatters` gem, which provides support for legacy formatters or upgrade the formatter to a compatible version.  Formatter added at: vendor/bundle/gems/rspec-core-3.4.1/exe/rspec:4:in `<top (required)>'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.