RSpec找不到嵌套格式化程序

时间:2014-07-11 00:54:42

标签: ruby testing rspec tdd

我正在尝试仅针对Ruby(而不是Rails)运行rspec,以获取简单的Ruby文件。我正在使用Ruby进行Tut + TDD测试。

我有一个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版本在Mac OSX 10.9.4上为1.9.1。

2 个答案:

答案 0 :(得分:23)

RSpec 1中使用了nested格式化程序。在RSpec 2中将其重命名为documentation

也许您在命令行或nested文件中指定了.rspec?然后,您需要指定--format documentation

您是否在某处设置了config.formatter = nested,可能是您的spec_helper.rb文件?删除它。

您可以从v1更新RSpec gem(运行测试的命令从spec更改为rspec,但这样很难错过)。您可以使用gem list rspec检查版本。

或者,您可能会错过恰好致电nested的{​​{3}}的负担。

答案 1 :(得分:10)

我的.rspec文件只有

--color

我仍然收到此错误。

我明确地将其设置为

--format documentation --color

现在它有效。