首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误元数据:找不到{"dataFile":"resources/env1/data.json"}@scenarios/jsonformfiller.feature#5 TestStep实现

错误元数据:找不到{"dataFile":"resources/env1/data.json"}@scenarios/jsonformfiller.feature#5 TestStep实现
EN

Stack Overflow用户
提问于 2022-02-04 15:18:29
回答 1查看 74关注 0票数 0

误差

Meta-data:{“dataFile”:“resources/env1 1/data.json”,“description”:“使用herejson文件输入代码提供数据的数据驱动测试”}@ TestStep /jsonformadder.Feature#5 TestStep实现未找到。请提供实现或确保'step.provider.pkg‘属性值包括适当的包。

步骤定义

代码语言:javascript
复制
    @QAFTestStep(description = "user is on google Web Page")
        public void step1() {
            
    try {    
            GooglePage googlepage = new GooglePage();
            googlepage.invoke();
            googlepage.waitForPageToLoad();
            System.out.println("I am on Google Search Page");
        } catch(Exception e) {
            
        }
        }
        @QAFTestStep(description = "user enters text {strText} in google search box")
        public void enterSearchText(String strText) {
            
            try {
                 GooglePage googlepage = new GooglePage();
                 googlepage.googleSearchTextBox.verifyPresent("google search TextBox");
                 googlepage.googleSearchTextBox.sendKeys(strText);
                System.out.println("I search for " + strText);
            } catch (Exception e) {
                
            }
        
        }

不能包含整个步骤定义这里的代码堆栈溢出警告我添加了太多的代码

代码语言:javascript
复制
  Feature: Validate Web Form
  Scenario: Validate User is able to fill form using json Data File
   Meta-data: {"dataFile":"resources/env1/data.json","description":"Data driven test that uses 
   json file to provide data"}

      Given user is on clevermedia web form 
      When user enters first name '${firstname}' from json data file
      And user enters last name '${lastname}' from json data file
      And user enters zipcode '${zipcode}' from json data file
      And user enters message '${message}' from json data file
      And user clicks on submit 
      Then user should be able to submit form successfully 

步骤定义-所有功能文件测试步骤在下面的步骤定义QAFTestSteps中定义。

用于测试执行的TestNG配置

代码语言:javascript
复制
  <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
   <suite name="QAF Demo" parallel="methods" verbose="0">
   <test name="QAF-BDD-Test">
      <parameter name="step.provider.pkg" value="com.qmetry.qaf.clevermedia.steps" />
      <parameter name="scenario.file.loc" value="scenarios/jsonformfiller.feature" />
      <parameter name="env.resources" value="resources/env1" />
   <classes>
     <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
   </classes>
  </test>
  </suite>

有人在我的步骤中看到了实现数据提供程序的错误吗?我为什么要犯这个错误?所有特征文件步骤都已定义或具有腐蚀的QAFTestStep。上面包含的用于测试执行的Testng配置似乎也是正确的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-04 19:20:36

Gherkin语法不支持元数据。您可以使用BDD2语法,这是Gherkin的超集。在BDD2中,您可以在场景之上提供场景元数据:

特征文件

代码语言:javascript
复制
Feature: Validate Web Form

@dataFile:resources/env1/data.json
@description:Data driven test that uses json file to provide data
Scenario: Validate User is able to fill form using json Data File
   Given user is on clevermedia web form
   When user enters first name '${firstname}' from json data file
   And user enters last name '${lastname}' from json data file
   And user enters zipcode '${zipcode}' from json data file
   And user enters message '${message}' from json data file
   And user clicks on submit
   Then user should be able to submit form successfully

对于BDD2,您需要使用BDD2工厂而不是Gherkin工厂。请参考文档

用于测试执行的TestNG配置

代码语言:javascript
复制
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="QAF Demo" parallel="methods" verbose="0">
<test name="QAF-BDD-Test">
     <parameter name="step.provider.pkg" value="com.qmetry.qaf.clevermedia.steps" />
     <parameter name="scenario.file.loc" value="scenarios/jsonformfiller.feature" />
     <parameter name="env.resources" value="resources/env1" />
  <classes>
     <class name="com.qmetry.qaf.automation.step.client.text.BDDTestFactory2" />
  </classes>
</test>
</suite>

但是推荐使用BDD2,如果您仍然想使用Gherkin语法,它没有提供元数据或外部测试数据。有了QAF,Gherkin工厂支持数据提供程序,并提供了如下示例以坚持使用gherkin语法:

代码语言:javascript
复制
Scenario: Validate User is able to fill form using json Data File
....
Examples: {"dataFile":"resources/env1/data.json"}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70988758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档