Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RSpec can't find nested formatter

I am trying to run rspec only for Ruby (not Rails), for a simple Ruby file. I'm following Tut+ TDD Testing with Ruby.

I have a competition directory with a lib folder and spec folder.

├── lib  
│   ├── competition.rb  
│   └── team.rb  
└── spec  
    └── competition_spec.rb  

When I run rspec, I got this error. I could've sworn the rspec work before. I don't know what happened.

competition :> rspec spec
/Users/akh88/.rvm/gems/ruby-1.9.3-p547/gems/rspec-core-> 3.0.2/lib/rspec/core/formatters.rb:167:in `find_formatter': Formatter 'nested' unknown - maybe you meant 'documentation' or 'progress'?. (ArgumentError)

My competition_spec.rb

require_relative "../lib/competiiton.rb"  
require_relative "../lib/team.rb"  

describe Competition do
  let(:competition) {Competition.new}
  let(:team) {Team.new}

  context "having no questions" do
    before { competition.questions = [] }

    it "doesn't accept any teams" do
      expect do
        team.enter_competition(competition)
      end.to raise_error Competition::Closed
    end
  end
end

My rvm default Ruby version is 1.9.1 on Mac OSX 10.9.4.

like image 278
the_answer_is_xyz Avatar asked Jul 11 '14 00:07

the_answer_is_xyz


2 Answers

The nested formatter was used in RSpec 1. This was renamed documentation in RSpec 2.

Maybe you have specified nested on the command line or in a .rspec file? Then you need to specify --format documentation instead.

Have you set config.formatter = nested somewhere, probably your spec_helper.rb file? Remove it.

You could have updated the RSpec gem from v1 (the command to run tests changed from spec to rspec though so that's hard to miss). You can check versions with gem list rspec.

Alternatively, you could be missing the load of a custom formatter you happened to call nested.

like image 139
Matt Avatar answered Sep 29 '22 14:09

Matt


My .rspec file only had

--color

and I was still getting this error.

I explicitly set it to

--format documentation --color

And now it works.

like image 34
Fritzz Avatar answered Sep 29 '22 15:09

Fritzz