RSpec can't find nested formatter

rspec, ruby, tdd, testing

Solution

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`.

Problem

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.

Original source