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

删除重复的TestNGcucumber转轮文件

彭存
2023-03-14

我已经为我的selenium项目实现了Testng和Cucumber。我通过运行Testng来运行我的测试用例。xml,我已将它们重定向到Testng Runner文件。每个运行程序文件中唯一的区别是@tag,它链接到Cucumber功能场景,因此我使用@sanity@regression等创建了单独的运行程序文件。我希望避免创建太多运行程序文件,因为只有@tag是一个变量。我想参数化注释,这样我就只有一个运行程序文件。


package com.ibm.wce.scbn.cc.runner;

import org.apache.log4j.Logger;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import cucumber.api.CucumberOptions;
import cucumber.api.testng.CucumberFeatureWrapper;
import cucumber.api.testng.TestNGCucumberRunner;

@CucumberOptions(features = "./Features", glue = { "com.ibm.wce.scbn.cc.stepdefinitions" }, tags = { "@Sanity" }

)

public class Sanity {

    private TestNGCucumberRunner testNGCucumberRunner;
    private static final Logger logger = Logger.getLogger(Sanity.class.getName());

    @BeforeClass(alwaysRun = true)
    public void setUpClass() throws Exception {

        logger.info("initialize TestNG cucumber runner");
        testNGCucumberRunner = new TestNGCucumberRunner(this.getClass());
    }

    @Test(dataProvider = "features")
    public void feature(CucumberFeatureWrapper cucumberFeature) {
        logger.info("Running Cucumber features in loop");

        testNGCucumberRunner.runCucumber(cucumberFeature.getCucumberFeature());
    }

    @DataProvider
    public Object[][] features() {
        logger.info("inside data provider");

        return testNGCucumberRunner.provideFeatures();
    }

    @AfterClass(alwaysRun = true)
    public void tearDownClass() throws Exception {
        logger.info("close cucumber runner");

        testNGCucumberRunner.finish();
    }

}
Feature: Validating Mailbox response using Json data provider

  @Sanity
  Scenario: Validate Mailbox Bad Request response
    Given We have an ENDPOINT_baseURI "api.baseUrl"
    Given I set test report name "Mailbox API-Without required fields(Bad Request)"
    And We declare a new Request
    And We have Json request "bad_request" in file "api.mailboxJsonPayLoads"
    And We have below Header parameters
      | Content-Type | application/json |
    When We send post request to service "api.mailboxService"
    Then The response status code should be Bad Request
<suite name="Suite1">
    <test name="Sanity">
        <classes>
            <class name="com.ibm.wce.scbn.cc.runner.Sanity" />
        </classes>
    </test> <!-- Test -->
    <test name="Regression">
        <classes>
            <class name="com.ibm.wce.scbn.cc.runner.Regression" />
        </classes>
    </test> <!-- Test -->
</suite> <!-- Sanity1 -->

共有1个答案

卫高明
2023-03-14

注释不能参数化。

如果你想做到这一点,那么有一个循环的方法。

以下是您需要遵循的步骤

  1. 首先让一个类实现注释接口cumber。应用程序编程接口。cucumber选项

这应该能让你完成你的要求。

下面是我构建的一个开源库中的一些代码示例,它利用了这个概念。

  1. 实现注释,请参见此处
  2. 通过TestNG侦听器连接实现,请参见此处
  3. 可以在运行时更改注释值的反射实用程序,请参见此处。
    1. 侦听器中连接的服务提供者接口机制,请参见此处

 类似资料:
  • 请注意,在转向您之前,我已经浏览了各种帖子。事实上,我尝试实现中提供的解决方案:基于“notin”条件从数据帧中删除行 我的问题如下。让我们假设我有一个巨大的数据帧,我想删除重复的数据帧。我很清楚我可以使用drop_duplicates,因为这是最快的最简单的方法。然而,我们的老师希望我们创建一个包含重复项ID的列表,然后根据这些值是否包含在上述列表中删除它们。 现在,让我们看看输出: 因此,我得

  • 问题内容: 有没有一种方法可以使用ant删除重复文件?具体来说,如果我在两个不同的输出目录中具有相同的文件名,则要从第二个目录中删除它。 问题答案: 我想我想出了一个解决方案。

  • 问题内容: 我在存储的过程中有一个字符串,类似于或 从上面的字符串中,我必须从中删除多个逗号,它必须看起来像 或仅在 then时 。我必须仅使用Sql Server函数。我正在使用Sql Server 2008和.Net 3.5 提前致谢。 问题答案: 该选项适用于仅使用逗号或最多398个连续逗号的字符串。 如果需要更多,在顶部添加额外的2的幂,或者如果需要较少,则从顶部删除2的幂。每个阶段的注释

  • 问题内容: 我有一张看起来像这样的桌子 表格1 ID,名称 如何编写查询以删除所有具有重复名称的行,但保留具有较低ID的行? 问题答案: 如果您使用的是SQL Server 2005或更高版本: 如果使用SQL Server 2000及更低版本

  • 本文向大家介绍pandas 删除重复,包括了pandas 删除重复的使用技巧和注意事项,需要的朋友参考一下 示例 用途drop_duplicates: 当您不想获取数据框的副本,而要修改现有的数据框时:            

  • 问题内容: 作为我正在做的项目的一部分,我想清理我生成的重复行条目的文件。但是,这些重复项通常不会彼此靠近发生。我想出了一种用Java执行此操作的方法(基本上是复制文件,然后使用嵌套的while语句将一个文件中的每一行与其他文件中的每一行进行比较)。问题是我生成的文件很大而且文本很重(大约22.5万行文本,大约40兆)。我估计目前的程序需要63个小时!这绝对是不可接受的。 但是,我需要一个集成的解