在 RubyMine 中运行 Cucumber 测试场景时出错

Posted

技术标签:

【中文标题】在 RubyMine 中运行 Cucumber 测试场景时出错【英文标题】:Error when running Cucumber test scenario in RubyMine 【发布时间】:2021-06-16 00:05:51 【问题描述】:

为了完全透明,我在一小时前开始了解 Cucumber。我一直在关注在 Ruby 中使用 Selenium 和 Cucumber 的简明教程,在 this 点之前我没有遇到任何问题。

本质上,我正在尝试运行一个测试场景(?),但我收到了这个错误:

C:\Ruby27-x64\bin\ruby.exe -EUTF-8 C:\Ruby27-x64\bin\cucumber C:/Users/kanwo/RubymineProjects/untitled/features/1.feature --format Teamcity::Cucumber::Formatter --expand --color -r features
Testing started at 7:09 am ...
wrong number of arguments (given 1, expected 2)
Error creating formatter: Teamcity::Cucumber::Formatter (ArgumentError)
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/formatter/io.rb:12:in `ensure_io'
C:/Program Files/JetBrains/RubyMine 2020.3.2/plugins/ruby/rb/testing/patch/bdd/teamcity/cucumber/cucumber_4_formatter.rb:20:in `initialize'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/formatter/io.rb:30:in `new'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/formatter/io.rb:30:in `new'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/runtime.rb:206:in `create_formatter'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/runtime.rb:195:in `block in formatters'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/configuration.rb:209:in `block in formatter_factories'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/configuration.rb:207:in `map'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/configuration.rb:207:in `formatter_factories'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/runtime.rb:194:in `formatters'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/runtime.rb:174:in `report'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/runtime.rb:76:in `run!'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/lib/cucumber/cli/main.rb:29:in `execute!'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/cucumber-5.3.0/bin/cucumber:9:in `<top (required)>'
C:/Ruby27-x64/bin/cucumber:23:in `load'
C:/Ruby27-x64/bin/cucumber:23:in `<main>'

错误通常很直接,但我觉得我对框架的了解不够(?再说一遍,因为我刚刚跳入这个问题,所以我做了一些研究,发现这是一个问题有一段时间,根据这些情况:

第一个链接很难看,已警告您

2015, Instance 1

2015, Instance 2

2015, Instance 3

2018, Instance 4

2020, Instance 5

2021, Instance 6

2021, 9 days ago, Instance 7

当然,这些都与我的错误完全相同,但它们似乎共享一个主题;版本。

所以据我了解,这是 Cucumber、RubyMine 和 TeamCity 版本之间的冲突。 话虽如此,我在这里基本上不走运吗?我可以在 VSCode 之类的东西中执行此操作吗?我不喜欢在不必要的情况下将问题转储到论坛中,但我什至不知道从哪里开始解决这个问题。

另外,如果有帮助,这就是我正在运行的:

Feature: Feature Name

  Scenario: Logging in
    Given I am on the login page
    When I enter my password correctly
    Then I will be logged in and provided a confirmation

这些是我当地的瑰宝:

activesupport (6.1.3)
ast (2.4.2)
benchmark (default: 0.1.0)
bigdecimal (default: 2.0.0)
builder (3.2.4)
bundler (default: 2.1.4)
cgi (default: 0.1.0)
childprocess (3.0.0)
concurrent-ruby (1.1.8)
csv (default: 3.1.2)
cucumber (5.3.0)
cucumber-core (8.0.1)
cucumber-create-meta (2.0.4)
cucumber-cucumber-expressions (10.3.0)
cucumber-gherkin (15.0.2)
cucumber-html-formatter (9.0.0)
cucumber-messages (13.2.1)
cucumber-tag-expressions (2.0.4)
cucumber-wire (4.0.1)
date (default: 3.0.0)
dbm (default: 1.1.0)
delegate (default: 0.1.0)
did_you_mean (default: 1.4.0)
diff-lcs (1.4.4)
etc (default: 1.1.0)
fcntl (default: 1.0.0)
ffi (1.15.0 x64-mingw32)
fiddle (default: 1.0.0)
fileutils (default: 1.4.1)
forwardable (default: 1.3.1)
gdbm (default: 2.1.0)
getoptlong (default: 0.1.0)
i18n (1.8.9)
io-console (default: 0.5.6)
ipaddr (default: 1.2.2)
irb (default: 1.2.6)
jar_wrapper (0.1.8)
json (default: 2.3.0)
logger (default: 1.4.2)
matrix (default: 0.2.0)
middleware (0.1.0)
minitest (5.13.0)
multi_test (0.1.2)
mutex_m (default: 0.1.0)
net-pop (default: 0.1.0)
net-smtp (default: 0.1.0)
net-telnet (0.2.0)
observer (default: 0.1.0)
open3 (default: 0.1.0)
openssl (default: 2.1.2)
ostruct (default: 0.2.0)
parallel (1.20.1)
parser (3.0.0.0)
power_assert (1.1.7)
prime (default: 0.1.1)
protobuf-cucumber (3.10.8)
pstore (default: 0.1.0)
psych (default: 3.1.0)
racc (default: 1.4.16)
rainbow (3.0.0)
rake (13.0.1)
rdoc (default: 6.2.1)
readline (default: 0.0.2)
regexp_parser (2.1.1)
reline (default: 0.1.5)
rexml (default: 3.2.3)
rss (default: 0.2.8)
rubocop (1.11.0)
rubocop-ast (1.4.1)
ruby-progressbar (1.11.0)
rubyzip (2.3.0)
sdbm (default: 1.0.0)
selenium (0.2.11)
selenium-webdriver (3.142.7)
singleton (default: 0.1.0)
stringio (default: 0.1.0)
strscan (default: 1.0.3)
sys-uname (1.2.2)
test-unit (3.3.4)
thor (1.1.0)
thread_safe (0.3.6)
timeout (default: 0.1.0)
tracer (default: 0.1.0)
tzinfo (2.0.4)
unicode-display_width (2.0.0)
uri (default: 0.10.0)
webrick (default: 1.6.0)
xmlrpc (0.3.0)
yaml (default: 0.1.0)
zeitwerk (2.4.2)
zip (2.0.2)
zlib (default: 1.1.0)

感谢任何见解!

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,但通过按照以下步骤更新 RubyMine 中的运行设置解决了:

Run->Edit Configurations->Templates->Cucumber->Configuration-> Runner Options as "--color -r features -f pretty"

【讨论】:

【参考方案2】:

这是一个 RubyMine 错误。我们无法在 Cucumber 端解决任何问题。

您可以咨询非推荐的monkeypatch / hack。或者降级到 Cucumber5 的早期版本。

请参阅 https://youtrack.jetbrains.com/issue/RUBY-27294 了解更多信息,包括其他可能的解决方法和 Jetbrains 修复的时间表。

Luke - Cucumber Ruby 提交者。

【讨论】:

以上是关于在 RubyMine 中运行 Cucumber 测试场景时出错的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 RubyMine 中运行单个 Steak 测试?

RubyMine创建第一个ruby项目并运行

RubyMine创建第一个ruby项目并运行

使用 Intellij/Rubymine 在 docker 中调试 rails 应用程序

RubyMine - inotify(7) 监视限制太低

修复 IntelliJ IDEA 中 Cucumber 6.8.1运行找不到类的问题