RSpec не может найти вложенный форматтер

Я пытаюсь запустить rspec только для Ruby (not Rails), для простого файла Ruby. Я следую Tut + TDD Testing с Ruby.

У меня есть каталог competition с папкой lib и spec.

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

Когда я запустил rspec, я получил эту ошибку. Я мог бы поклясться в работе rspec раньше. Я не знаю, что произошло.

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)

Мой 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

Моя rvm версия Ruby по умолчанию - 1.9.1 на Mac OSX 10.9.4.

Ответы

Ответ 1

Форматировщик nested использовался в RSpec 1. Это было переименовано в documentation в RSpec 2.

Возможно, вы указали nested в командной строке или в файле .rspec? Затем вам нужно указать --format documentation.

Установили ли вы config.formatter = nested где-нибудь, возможно, ваш файл spec_helper.rb? Удалите его.

Вы могли бы обновить жемчужину RSpec от v1 (команда для запуска тестов изменилась с spec на rspec, хотя так трудно пропустить). Вы можете проверить версии с помощью gem list rspec.

В качестве альтернативы вам может не хватать загрузку настраиваемого форматирования, с которым вы звонили nested.

Ответ 2

В моем файле .rspec было

--color

и я все еще получал эту ошибку.

Я явно установил его в

--format documentation --color

И теперь это работает.