如何解决错误解析特征文件的runtime.cucumberexception

新手上路,请多包涵

我刚刚创建了简单的 java 文件,用于通过黄瓜执行功能文件,但它失败了,并抛出以下运行时异常

Exception in thread "main" cucumber.runtime.CucumberException: Error parsing feature file C:/Users/XXX/XXXX/src/test/java/RunTest.java
    at cucumber.runtime.FeatureBuilder.parse(FeatureBuilder.java:133)
    at cucumber.runtime.model.CucumberFeature.loadFromFeaturePath(CucumberFeature.java:102)
    at cucumber.runtime.model.CucumberFeature.load(CucumberFeature.java:54)
    at cucumber.runtime.model.CucumberFeature.load(CucumberFeature.java:34)
    at cucumber.runtime.RuntimeOptions.cucumberFeatures(RuntimeOptions.java:201)
    at cucumber.runtime.Runtime.run(Runtime.java:109)
    at cucumber.api.cli.Main.run(Main.java:36)
    at cucumber.api.cli.Main.main(Main.java:18)
Caused by: gherkin.lexer.LexingError: Lexing error on line 1: 'package test.java;

import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;

    @CucumberOptions(features="src/test/resources/")
    public class RunTest extends AbstractTestNGCucumberTests {
    }

特征文件:

 Feature: Search India on BBC website and verify search.

@Search
  Scenario Outline: Search India on BBC website and verify it.
    Given I open the firefox browser
    And I navigating to BBc website
    Then I click at search textbox
    And I enter "India" in search textbox
    And I click at Search button
    Then I should be taken to search page
    And I verify India on search page

有人可以告诉我如何解决这个问题吗?

原文由 SKumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 603
2 个回答

使用场景大纲时,您需要提供“示例”部分。在这种情况下,看起来您根本不需要场景大纲,因此:

 Feature: Search India on BBC website and verify search.

  @Search
  Scenario: Search India on BBC website and verify it.
    Given I open the firefox browser
    And I navigating to BBc website
    Then I click at search textbox
    And I enter "India" in search textbox
    And I click at Search button
    Then I should be taken to search page
    And I verify India on search page

如果您确实需要场景大纲,则需要类似以下内容:

 Feature: Search India on BBC website and verify search.

  @Search
  Scenario Outline: Search India on BBC website and verify it.
    Given I open the firefox browser
    And I navigating to BBc website
    Then I click at search textbox
    And I enter "<country>" in search textbox
    And I click at Search button
    Then I should be taken to search page
    And I verify <country> on search page

  Examples:
    | country |
    | India   |
    | China   |

原文由 Tyler MacMillan 发布,翻译遵循 CC BY-SA 3.0 许可协议

问题是您使用的是“场景大纲”而不是“场景”。所以你只需要删除“大纲”就可以了。

 @Search
Scenario: Search India on BBC website and verify it
Given I open the firefox browser
And I navigating to BBc website
Then I click at search textbox
And I enter "India" in search textbox
And I click at Search button
Then I should be taken to search page
And I verify "India" on search page

但是如果你想针对多个输入执行相同的场景而不是选择正确的东西即“场景大纲:”只需要在那里添加示例,如:

 @Search
  Scenario Outline: Search India on BBC website and verify it.
    Given I open the firefox browser
    And I navigating to BBc website
    Then I click at search textbox
    And I enter <country> in search textbox
    And I click at Search button
    Then I should be taken to search page
    And I verify <country> on search page
    Examples:
    | country |
    | "India" |
    | "UK"    |

原文由 Muhammad Farooq 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题