当前位置: 首页 > 知识库问答 >
问题:

在qaf 2.1.13中无法解析特征文件中的元数据标签

束新
2023-03-14
  1. config.xml

>

  • providerclass:

    public class CustomDataProdvider {
       @DataProvider(name="my-custom-dp")
       public static Object[][] dataProviderForBDD(){
    
          Map<Object, Object> rec1 = Maps.newHashMap();
          rec1.put("fruit", "grapes");
          rec1.put("color", "green");
    
          Map<Object, Object> rec2 = Maps.newHashMap();
          rec2.put("fruit", "banana");
          rec2.put("color", "yellow");
    
          return new Object[][]{ {rec1},{rec2}};
      }
    

    特色:

    @TestForTest
    SCENARIO : Custom Data provider Example
    META-DATA: {"dataProvider":"my-custom-dp", "dataProviderClass":"com.qmetry.qaf.example.CustomDataProvider", "description":"Data driven test that uses custom data provider"}
       Given I am on fruits and colors activity
       When i select '${fruit}'
       Then the color should be '${color}'
    END
    

    步骤:

    @MetaData(value = "{'groups':['smoke']}")
    @QAFTestStepProvider
    public class TestDataProdivider {
    
       @QAFTestStep(description = "I am on fruits and colors activity")
       public void test(){
          System.out.println("I am on fruits and colors activity");
       }
    
       @QAFTestStep(description = "i select {fruit}")
       public void testfruit(String fruit){
          System.out.println(fruit);
       }
    
       @QAFTestStep(description = "the color should be {color}")
       public void testcolor(String color){
          System.out.println(color);
       }
    }
    

    结果:

    @QAFTestStep(description="META-DATA: {0}")
    public void mETADATA(Map<Object,Object> mapObj0){
       //TODO: remove NotYetImplementedException and call test steps
       throw new NotYetImplementedException();
    }
    

    忽略测试

  • 共有1个答案

    通博实
    2023-03-14

    您正在使用GherkinScenarioFactory,它需要小cucumber语法中的bdd。在gherkin中不支持元数据,但在qaf-bdd中支持。您应该使用com.qmetry.qaf.automation.step.client.text.BDDTestFactory。您的bdd文件,suite1.bdd,应该如下所示,以使用BDDTestFactory

    SCENARIO : Custom Data provider Example
    META-DATA: {"dataProvider":"my-custom-dp", "dataProviderClass":"com.qmetry.qaf.example.CustomDataProvider", "description":"Data driven test that uses custom data provider","groups":{"TestForTest","smoke"}}
       Given I am on fruits and colors activity
       When i select '${fruit}'
       Then the color should be '${color}'
    END
    

    如果您与原始版本进行比较,您将观察到在元数据中移动了@TestForTest,以使您的场景与qaf-bdd兼容。确保您的bdd文件具有扩展名. bdd,以便使用BDDTestFactory

    您的配置文件应该如下所示:

    <suite name="QAF-Demo" verbose="0">
    <test name="BDD Tests">
       <parameter name="step.provider.pkg" value="com.qmetry.qaf.example.steps" />
       <parameter name="scenario.file.loc" value="scenarios" />
       <groups>
         <run>
            <include name="TestForTest"/>
         </run>
       </groups>
       <classes>
          <class name="com.qmetry.qaf.automation.step.client.text.BDDTestFactory" />
       </classes>
    </test>
    </suite>
    

    几乎没有观察到:

    • 您正试图通过在步骤定义类中放置@MetaData(value=“{'groups':['smoke']}”)来向步骤添加组。这没有任何意义。应将组分配给测试用例/场景,而不是步骤
    • 此外,您不需要在步骤定义类中放置@QAFTestStepProvider,因为您正在使用@QAFTestStep将方法标记为步骤

    因此,步骤定义类应该如下所示:

    public class TestDataProdivider {
    
       @QAFTestStep(description = "I am on fruits and colors activity")
       public void test(){
          System.out.println("I am on fruits and colors activity");
       }
    
       @QAFTestStep(description = "i select {fruit}")
       public void testfruit(String fruit){
          System.out.println(fruit);
       }
    
       @QAFTestStep(description = "the color should be {color}")
       public void testcolor(String color){
          System.out.println(color);
       }
    } 
    
     类似资料:
    • 本文向大家介绍Python解析Excle文件中的数据方法,包括了Python解析Excle文件中的数据方法的使用技巧和注意事项,需要的朋友参考一下 在公司里面,人力资源部每到发工资的时候就会头疼,如果公司内部有100多号员工,那么发完工资后需要给员工发送工资条的话,那么就需要截图如下图, 但是在公司的薪水保密协议不允许公开所有人的薪水,因此我们需要一个一个的发,现在我们给张三发一下薪资条 如果我们

    • 问题内容: 加载似乎包含 TAB 字符的JSON文件时,我遇到了解析问题。 当我转到http://jsonlint.com/时,我输入了带有TAB字符的部分: 验证者抱怨: 这实际上是有问题的JSON文本的复制/粘贴。 我曾尝试加载该文件,并没有成功。如何正确加载?我应该只预处理文件并用空格替换TAB 吗?还是我在这里想念的东西? 更新: 这也是一个有问题的示例: 问题答案: 从JSON标准: 在

    • 我正在尝试实现动态交付类型的APP。首先,我在create模块之后创建新项目,用于此动态步骤 我的crate类和想要访问资源文件夹的使用布局,可绘制文件夹。 在主模块级实现 实现'com.google.android.play:core:1.2.0'和dynamicFeatures=[“:Dynamic_Feature”] 错误:找不到符号变量activity_main 错误:找不到符号变量iv_

    • 我试图在web应用程序中使用打包在jar中的taglib。 jar文件包含: /WEB-INF/MyTagLib。tld,其中包含 /com/test/tags/MyTag.class 在我的Web项目中,我将jar文件放在中(部署后也在那里)。 我的jsp文件包含(除其他外): 部署在Tomcat 6上时,页面会显示: 绝对URI:http://test.com/tags无法在web中解析。xm

    • 我当前的Cucumber文件如下所示: 所以现在我想再添加几个场景,可能是在同一个文件中进行API测试。所以我想为此创建一个新特性,而不是使用Feature:Test Online application页面。这样我就不需要为API测试创建单独的特性文件。

    • 我创建了以下内容。路径中的proto文件:微服务/内部/proto文件/域/存储库。原型 还有以下内容。另一路径中的proto文件:微服务/内部/proto文件/服务 但是我的IDE(goland)无法在repository-service.proto中解析导入,并且当我使用协议命令生成.pb.go文件时,我将面临以下错误: