Ruby on rails 3 黄瓜“--“格式进度”;不';行不通

Ruby on rails 3 黄瓜“--“格式进度”;不';行不通,ruby-on-rails-3,format,cucumber,Ruby On Rails 3,Format,Cucumber,在my cucumber.yml中,我尝试添加此选项(default:--drb--format progress),但它返回一个错误: Exception encountered: #<ArgumentError: wrong number of arguments (3 for 2) Error creating formatter: progress> 所以也许没有选择,但是 “格式漂亮”在没有任何括号的情况下工作正常。 我不希望看到控制台中的所有场景,但只希望看到哪个场景有

在my cucumber.yml中,我尝试添加此选项(
default:--drb--format progress
),但它返回一个错误:

Exception encountered: #<ArgumentError: wrong number of arguments (3 for 2)
Error creating formatter: progress>
所以也许没有选择,但是

“格式漂亮”在没有任何括号的情况下工作正常。 我不希望看到控制台中的所有场景,但只希望看到哪个场景有错误,也许有另一种方法可以做到这一点

完整跟踪:

wrong number of arguments (3 for 2)
Error creating formatter: progress (ArgumentError)
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/activerecord-3.1.0/lib/active_record/base.rb:1543:in `initialize'

/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:in `new'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:in `block in formatters'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:in `map'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:in `formatters'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:68:in `build_tree_walker'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/runtime.rb:42:in `run!'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/main.rb:43:in `execute!'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/main.rb:20:in `execute'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/bin/cucumber:14:in `<top (required)>'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/bin/cucumber:19:in `load'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/bin/cucumber:19:in `<main>'
参数数量错误(3代表2)
创建格式化程序时出错:进度(ArgumentError)
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/activerecord-3.1.0/lib/active_record/base.rb:1543:in'initialize'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:in'new'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:“格式化程序中的块”中
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:in'map'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:在“格式化程序”中
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:68:in'build_tree_walker'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/runtime.rb:42:in'run!'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/main.rb:43:in'execute!'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/main.rb:20:in'execute'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/bin/cucumber:14:in`'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/箱子/黄瓜:19:装入
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/垃圾箱/黄瓜:19:in`'
如果我在cucumer.yml中写入选项,则错误略有不同:

Exception encountered: #<ArgumentError: wrong number of arguments (3 for 2)
Error creating formatter: progress>
backtrace:
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/activerecord-3.1.0/lib/active_record/base.rb:1543:in `initialize'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:in `new'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:in `block in formatters'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:in `map'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:in `formatters'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:68:in `build_tree_walker'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/runtime.rb:42:in `run!'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/main.rb:43:in `execute!'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/test_framework/cucumber.rb:24:in `run_tests'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/run_strategy/forking.rb:13:in `block in run'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/forker.rb:21:in `block in initialize'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/forker.rb:18:in `fork'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/forker.rb:18:in `initialize'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/run_strategy/forking.rb:9:in `new'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/run_strategy/forking.rb:9:in `run'
/home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/server.rb:48:in `run'
/home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1558:in `perform_without_block'
/home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1518:in `perform'
/home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1592:in `block (2 levels) in main_loop'
/home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1588:in `loop'
/home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1588:in `block in main_loop'
遇到异常:# 回溯: /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/activerecord-3.1.0/lib/active_record/base.rb:1543:in'initialize' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:in'new' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:168:“格式化程序中的块”中 /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:in'map' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:163:在“格式化程序”中 /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/configuration.rb:68:in'build_tree_walker' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/runtime.rb:42:in'run!' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/cucumber-1.1.0/lib/cucumber/cli/main.rb:43:in'execute!' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/test_framework/cucumber.rb:24:in'run_tests' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/run_strategy/forking.rb:13:in'block in run' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/forker.rb:21:in'block in initialize' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/forker.rb:18:in'fork' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/forker.rb:18:in'initialize' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/run_strategy/forking.rb:9:in'new' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/run_-strategy/forking.rb:9:in'run' /home/alder/.rvm/gems/ruby-1.9.2-p290@global/gems/spork-0.9.0.rc9/lib/spork/server.rb:48:in'run' /home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1558:in'perform_without_block' /home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1518:in'perform' /home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1592:in `主循环中的块(2层)' /home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1588:in'loop' /home/alder/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1588:in“主循环中的块”
顺便说一句,我有点小毛病,可能是个问题

从粘贴的输出来看,在
cucumber.yml
文件中有一个额外的角度('>')括号:

require 'cucumber/formatter/progress'
创建格式化程序时出错:进度>

除非您的问题中有输入错误,否则Cucumber出于某种原因正在尝试创建名为“progress>”的格式化程序,因此您可能只需要找到并删除额外的尖括号



编辑:这根本不是问题所在,请参见

根据您问题中的更新信息,我想我看到了问题所在(因此我发布了另一个答案,因为它与我的另一个答案完全不同)。Cucumber似乎正在尝试实例化一个ActiveRecord类,因此我怀疑您的项目中某处有一个名为“Progress”的模型,Cucumber试图创建该模型,而不是实际的格式化程序

通过将此类添加到“支持”文件夹中,我可以重现您的问题(无论如何,已经足够接近了):

class Progress
    def initialize
        raise "I don't exist!"
    end
end
根据文档,您应该能够在此处指定一个完全限定的类名,即
--format Cucumber::Formatter::Progress
,以强制cumber使用自己的格式化程序。然而,我尝试了这个,但仍然不起作用,Cucumber解析完全限定名的方式似乎有一个bug

我可以通过将这一行添加到我的
env.rb
文件中来解决这个问题:

require 'cucumber/formatter/progress'
这样我就可以成功地运行
cucumber--format progress


我认为,由于
env.rb
在任何其他代码之前执行,Cucumber的
Progress
类将是创建格式化程序时找到的第一个类。

没有
,我在控制台中尝试了“Cucumber--格式化进度”,但它也不起作用。您可以添加
--backtrace
参数吗