黄瓜解析器错误

Cucumber parser error

这是我的目录结构:

C:\Work\Test Scripts\Cucumber\features features\guru.特征 features\step_definitions

所以 运行从 step_definitions 中调用 Cucumber 命令,我仍然看到如下错误:

c:\Work\Test Scripts\Cucumber\features\step_definitions>黄瓜 *** 警告:您必须使用 ANSICON 1.31 或更高版本(https://github.com/adoxa/ansic on/) 在 Windows 上获得彩色输出 没有这样的文件或目录 - 功能。您可以使用 cucumber --init 开始 编辑

c:\Work\Test Scripts\Cucumber\features\step_definitions>黄瓜步-guru.rb *** 警告:您必须使用 ANSICON 1.31 或更高版本(https://github.com/adoxa/ansic on/) 在 Windows 上获得彩色输出 步骤-guru.rb:解析器错误: (3:1):预期:#Language、#TagLine、#FeatureLine、#Comment、#Empty、得到“给定” (/^ 我在某个职业网站.com Page$/) do'

这是我的功能文件:

Feature: Visit Career guide page in some career site
Scenario: Visit some career site dot com
    Given  I am on http://some career site dot com/
    When I click on jobs tab
    Then  I should see Jobs page

这是我的 .rb 文件 运行 代码:

Given (/^ I am on some career site demo Page$/) do
  Browser.goto "career site" 
end

When (/^ click on Jobs tab$/) do
  Browser.text (:name, "Jobs" ).click 
end

Then (/^ I should see Jobs page$/) do
  Browser.goto "jobs site/"
  puts "Successful Page load"
  browser.close
end

我遇到了以下 Cucumber Parser 错误。能否请您看看并帮我解决这个问题?

c:\Work\Test Scripts\Cucumber\features\step_definitions>cucumber step-guru.rb
*** WARNING: You must use ANSICON 1.31 or higher (githubsite of ansicon) to get coloured output on Windows
step-guru.rb: Parser errors:
(3:1): expected: #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'Given (/^ I am on some career site demo Page$/) do'
(5:1): expected: #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'Browser.goto "http://some career site dot com"'
(7:1): expected: #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'end'
(11:1): expected: #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'When (/^ click on Jobs tab$/) do'
(13:1): expected: #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'Browser.text (:name, "Jobs" ).click'
(15:1): expected: #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'end'
(19:1): expected: #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'Then (/^ I should see Jobs page$/) do'
(21:1): expected: #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'Browser.goto "http://some career site dot com/jobs/"'
(23:1): expected: #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'puts "Successful Page load"'
(25:1): expected: #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'browser.close'
(27:1): expected: #Language, #TagLine, #FeatureLine, #Comment, #Empty, got 'end' (Cucumber::Core::Gherkin::ParseError)
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/cucumber-core-1.3.0/lib/cucumber/core/gherkin/parser.rb:34:in `rescue in document'
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/cucumber-core-1.3.0/lib/cucumber/core/gherkin/parser.rb:29:in `document'
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/cucumber-core-1.3.0/lib/cucumber/core.rb:27:in `block in parse'
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/cucumber-core-1.3.0/lib/cucumber/core.rb:26:in `each'
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/cucumber-core-1.3.0/lib/cucumber/core.rb:26:in `parse'
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/cucumber-core-1.3.0/lib/cucumber/core.rb:18:in `compile'
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/cucumber-2.1.0/lib/cucumber/runtime.rb:70:in `run!'
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/cucumber-2.1.0/lib/cucumber/cli/main.rb:32:in `execute!'
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/cucumber-2.1.0/bin/cucumber:8:in `<top (required)>'
C:/Ruby200-x64/bin/cucumber:23:in `load'
C:/Ruby200-x64/bin/cucumber:23:in `<main>'

你叫黄瓜的方式不对:

cucumber step-guru.rb

Cucumber 尝试将您的步骤定义文件解释为功能文件 - 相反,您应该只是 运行 来自顶级目录的 cucumber as

cucumber

前提是你的项目布局是这样的:

TOP/     
   features/  
     first.feature
     steps/
       first_step.rb

Given (/^ I am on some career site demo Page$/) do 发生解析器错误,因为功能文件中没有对应的 Given。相反,问题中特征文件的 Given 显示为 Given I am on http://some career site dot com/,这与步骤定义中提到的不同。我建议如下:

  1. 为您的功能文件添加一个用户故事标签。例如在特征文件的开头写入 @US_Something 作为第一行。
  2. 从功能父目录的终端,运行 cucumber -t @US_Something。如果功能文件没有问题,Cucumber 将建议在您的步骤定义 .rb 文件中实施的方法。使用这些方法进行后续实施。

我遇到过同样的问题。我只是从我的 intellij 编辑器的文件-> 文件属性-> 删除 BOM 中“删除 BOM”。

开始解析文件。