cucumber 2.0.0与RubyMine 6.x和TeamCity格式化程序不兼容

3 ruby rubygems rubymine cucumber

我正在尝试在自动化测试套件中设置Cucumber.我目前正在使用Ruby 2.0,但Ruby 2.2也存在同样的问题.

我尝试过Cucmber 2.0.0以及2.0.0.beta.3.无论是Ruby 2.0还是2.2,它们都没有任何兼容性.

每次我尝试运行我的.feature文件时,都会收到同样的错误.Cucumber声称可与任何版本的Ruby> = 1.9.3(https://rubygems.org/gems/cucumber)兼容,但这似乎不是真的.

有没有其他人看到这个错误?有没有其他人成功使用Cucumber 2.0.0与Ruby 2.0或2.2?如果是这样,你的Gemfile中有什么宝石以及你运行时会出现什么特定的ruby更新/版本ruby --version

**如果我恢复到较旧版本的Cucumber(我尝试过1.3.3),我可以正确运行我的.feature文件.但我正在从头开始构建一个新的测试套件,并希望借此机会使用所有可能宝石的最新版本.我不想围绕一个已弃用的Cucumber版本构建我的Gemfile.

`Cucumber::Ast` no longer exists. These classes have moved into the `Cucumber::Core::Ast` namespace, but may not have the same API. (RuntimeError)
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/ast.rb:10:in `const_missing'
C:/Program Files (x86)/JetBrains/RubyMine 6.3/rb/testing/patch/bdd/teamcity/cucumber/common.rb:210:in `scenario_outline?'
C:/Program Files (x86)/JetBrains/RubyMine 6.3/rb/testing/patch/bdd/teamcity/cucumber/common.rb:218:in `tc_before_feature_element'
C:/Program Files (x86)/JetBrains/RubyMine 6.3/rb/testing/patch/bdd/teamcity/cucumber/formatter_03103.rb:98:in `before_feature_element'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/formatter/ignore_missing_messages.rb:10:in `method_missing'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/formatter/legacy_api/adapter.rb:521:in `before'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/formatter/legacy_api/adapter.rb:394:in `switch_to_child'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/formatter/legacy_api/adapter.rb:316:in `switch_step_container'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/formatter/legacy_api/adapter.rb:242:in `after_test_case'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/formatter/legacy_api/adapter.rb:85:in `after_test_case'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/formatter/legacy_api/adapter.rb:37:in `after_test_case'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/formatter/fanout.rb:16:in `block in method_missing'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/formatter/fanout.rb:15:in `each'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/formatter/fanout.rb:15:in `method_missing'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/runner.rb:18:in `test_case'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/case.rb:21:in `describe_to'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/filters/prepare_world.rb:11:in `test_case'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/case.rb:21:in `describe_to'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/filters/apply_around_hooks.rb:8:in `test_case'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/case.rb:21:in `describe_to'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/filters/apply_after_hooks.rb:5:in `test_case'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/case.rb:21:in `describe_to'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/filters/apply_before_hooks.rb:5:in `test_case'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/case.rb:21:in `describe_to'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/filters/apply_after_step_hooks.rb:8:in `test_case'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/case.rb:21:in `describe_to'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/filters/activate_steps.rb:8:in `test_case'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/case.rb:21:in `describe_to'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/filters/quit.rb:11:in `test_case'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/case.rb:21:in `describe_to'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/filters/locations_filter.rb:17:in `block in done'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/filters/locations_filter.rb:16:in `each'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/filters/locations_filter.rb:16:in `done'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/filter.rb:61:in `done'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/test/filters/tag_filter.rb:18:in `done'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/compiler.rb:23:in `done'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core/gherkin/parser.rb:31:in `done'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core.rb:29:in `parse'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-core-1.1.3/lib/cucumber/core.rb:18:in `compile'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/runtime.rb:70:in `run!'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/lib/cucumber/cli/main.rb:38:in `execute!'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/cucumber-2.0.0/bin/cucumber:9:in `<top (required)>'
C:/Ruby200/bin/cucumber:23:in `load'
C:/Ruby200/bin/cucumber:23:in `<top (required)>'
-e:1:in `load'
Run Code Online (Sandbox Code Playgroud)

**更新:当我运行文件时,Windows Shell它运行成功,没有错误.

Gob*_*0st 10

症状:您可以在cucumber命令行下运行测试ok但无法在RubyMine下运行它,您收到错误:

错误的参数个数(1个用于3..4)创建格式化程序时出错:Teamcity :: Cucumber :: Formatter(ArgumentError)C:/ Program Files(x86)/ JetBrains/RubyMine 7.0.4/rb/testing/patch/bdd/teamcity/cucumber/formatter_03103.rb:22:在`initialize'中

我找到了一个更简单的解决方案:只需转到Rubymine - >运行 - >编辑配置,转到Runner选项,添加"--format pretty",这将覆盖不兼容的Teamcity问题并顺利运行.

HTH