Java 如何解析分析功能文件时出错的runtime.cucumberexception

Java 如何解析分析功能文件时出错的runtime.cucumberexception,java,webdriver,cucumber,bdd,Java,Webdriver,Cucumber,Bdd,我刚刚创建了一个简单的java文件,用于通过cucumber执行功能文件,但失败了,并抛出以下运行时异常 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.ja

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

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

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

在使用场景大纲时,您需要提供一个“示例”部分。在本例中,看起来您根本不需要场景大纲,因此:

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   |
功能:在BBC网站上搜索印度并验证搜索结果。
@搜寻
场景概述:在BBC网站上搜索印度并验证。
如果我打开firefox浏览器
我导航到BBc网站
然后单击搜索文本框
我在搜索文本框中输入“”
我点击搜索按钮
然后我应该被带到搜索页面
我在搜索页面上验证
示例:
|国家|
|印度|
|中国|

我发现了这个问题,在功能文件或场景中,冒号之前有额外的空间

所以这个问题应该在删除额外的空间后解决

先前的

    Scenario Outline: Search India on BBC website and verify it.
期望

    ScenarioOutline: Search India on BBC website and verify it.

这真的很有用。。在删除文本场景和冒号之间的空格后,我也出现了同样的错误。如果IDE显示错误以更正它,这将非常有用?? 脚本: 给药后没有冒号只是为了让你知道。 场景概要:使用正确的用户名和密码登录 给定我导航到登录页面 然后我输入 然后我点击登录按钮 然后我应该看到userform页面

Examples:
  | username                   | password  |

  | apple                      | passapple |
  | ball                       | passball  |
  | cat                        | passcat   |

我也有类似的问题。在去掉(:)分号和功能、场景、场景大纲等之间的空格后。。我的错误解决了

e、 g:

以及

功能:调用所有API事件、服务
场景大纲:创建呼叫后和验证数据
给定用户\u有\u产品的\u列表\u
当我们能得到产品详细信息的列表时
示例:
|用户类型|
|国内的|

考虑以下情况-

功能:预订确认页面
场景:验证页面组件
假设客户在“预订确认”页面
当客户查看页面时
然后,他们应该能够查看以下内容:
|标题|预订ID |乘客姓名|旅行日期|旅行时间|
|公交车详细信息|支付总额|目的地名称|目的地图像|
|到达目的地的时间|页脚|

如果在第2行中指定要验证的值(如图所示),则会出现解析错误。复制上述内容并粘贴到编辑器中时,不会显示任何错误。但是当您运行它时,它将给出解析错误。因此,我们需要在一行中指定要验证的值,即使它不适合编辑器

因此,场景如下所示

场景:验证页面组件
假设客户在“预订确认”页面
当客户查看页面时
然后,他们应该能够查看以下内容:

|页眉|预订ID |乘客姓名|旅行日期|旅行时间|巴士详细信息|支付总额|目的地名称|目的地图像|到达目的地的时间|页脚|
确保您只有一次word功能

我也面临这个问题。在我的例子中,我在一个数据表中遗漏了一个管道“|”。添加后,问题得到解决。数据表(或示例中的某个时间)

Feature: Call all APIs Incidents, Services
     Scenario: Create POST call and verify data 
         Given user_has_a_list_of_products
         When we_can_get_a_list_of_product_details
    Feature: Call all APIs Incidents, Services
     Scenario Outline: Create POST call and verify data 
         Given user_has_a_list_of_products <usertype>
         When we_can_get_a_list_of_product_details

        Examples:
            | usertype     |
            | Domestic     |
Issue:
      | feed.title            |
      | feed.updated          
      | feed.author.name      |

Corrected(added pipe in 2nd data) as:
      | feed.title            |
      | feed.updated          |
      | feed.author.name      |