黄瓜高级步骤定义 – 语法错误,意外的tIDENTIFIER,期待keyword_end

我遵循了重复使用黄瓜的步骤 。

对于Ruby和Cucumber来说,我是个菜鸟。
我正在使用calabash-android 0.9.0和黄瓜2.4.0

我的calabash_steps.rb:

require 'calabash-android/calabash_steps' Then /^I add the 1st bestsellers product to bag$/ do steps %Q { # App restarts and Onboarding screen shows again Given I see the text "next" Then I press the "next" button } end 

完整堆栈跟踪:

 ❯ bundle exec calabash-android run app/build/outputs/apk/app-staging-debug.apk -t @bag /Users/eric/AndroidStudioProjects/xxx/features/step_definitions/calabash_steps.rb:7: syntax error, unexpected tIDENTIFIER, expecting keyword_end Then I press the "next" button ^ (SyntaxError) /Users/eric/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/rb_support/rb_language.rb:96:in `load' /Users/eric/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/rb_support/rb_language.rb:96:in `load_code_file' /Users/eric/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime/support_code.rb:142:in `load_file' /Users/eric/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime/support_code.rb:84:in `block in load_files!' /Users/eric/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime/support_code.rb:83:in `each' /Users/eric/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime/support_code.rb:83:in `load_files!' /Users/eric/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime.rb:253:in `load_step_definitions' /Users/eric/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/runtime.rb:61:in `run!' /Users/eric/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/lib/cucumber/cli/main.rb:32:in `execute!' /Users/eric/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/cucumber-2.4.0/bin/cucumber:8:in `' /Users/eric/.rbenv/versions/2.4.0/bin/cucumber:22:in `load' /Users/eric/.rbenv/versions/2.4.0/bin/cucumber:22:in `' 

问题是steps %Q {的额外空间,将其更改为steps %Q{使问题消失
我习惯在Java和Javascript中滥用空格字符以便于阅读

要求’calabash-android / calabash_steps’

 Then /^I add the 1st bestsellers product to bag$/ do steps %Q{ # App restarts and Onboarding screen shows again Given I see the text "next" Then I press the "next" button } end