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

cucumber7号

文寒
2023-03-14

我在项目中使用TestNG和Cucumber。

旧版本:

    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>7.4.0</version>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-testng</artifactId>
        <version>7.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>7.0.0</version>
    </dependency>

一切都很好,但我需要在测试运行开始之前进行一些动态标记操作。更具体地说,我需要根据环境的某些条件添加额外的过滤器标签表达式

当前的实现是带有TestNGCucumberRunner字段的AbstractTestNGCucumberT类。

我需要更改/添加一些代码行的地方是TestNGCucumberRunner类的构造函数,因为运行程序在那里初始化并启动测试运行。

问题是,cucumber testng依赖项中几乎所有的类都不是公共的和最终的。所以我不能扩展类和重写一些逻辑。

我看到的唯一方法是将依赖项中的所有类复制到我的源文件夹,这是一个奇怪而愚蠢的想法。

有什么技巧可以让我实现我的目标吗?

共有1个答案

百里鸿祯
2023-03-14

扩展AbstractTestNGCucumberTests时,可以从scenarios()中筛选输出

public class RunCucumberTest extends AbstractTestNGCucumberTests {

    @DataProvider(parallel = true)
    @Override
    public Object[][] scenarios() {
        Object[][] scenarios = super.scenarios();
        // Do filtering here
        return scenarios;
    }

}

因为数据提供程序用于调用测试方法,所以可以安全地将第一个数组元素强制转换为PickleWrapper,并使用PickleWrapper.getPickle(). get tags()来访问这些标记。

 类似资料:
  • 求帮助并行执行cucumber7。我的项目是cucumber和爪哇宁静。在这个链接https://johnfergusonsmart . com/parallel-test-execution-with-cucumber-and-serenity-BDD/中,它显示可以运行,但尝试了不同的组合,看起来我错过了一些东西。 这是我的pom。xml文件: 4.0.0 要执行:我将相同的标签添加到多个功能

  • 问题内容: 我在SQL Server的更大的Select语句中有以下查询: 在某些条目(例如)之后,此列将生成一些奇怪的符号。我不知道这是哪里来的。我尝试`SELECT SelectedComments FROM 问题答案: 如果您修改了For Xml Path的用法,它将为您完成转义操作,并且您无需诉诸使用Replace函数:

  • 问题内容: 我需要在数据库中填充纬度和经度列,但是原始信息存储为单个字符串 例如。 我猜想TRIM命令在这里很有用,但是我不知道如何告诉它每半个部分都精确地停在逗号上。 我希望能够提出一个简单的UPDATE查询,如下所示: 但是显然在LTRIM和RTRIM部分中需要做一些额外的工作,因此我只选择数据,但不包括UDFChar1中的逗号。 关于如何实现这一目标的任何想法? 问题答案: 请试试: 和 样

  • 问题内容: 显然,Java本身不支持无符号数字类型,并且这种情况不会很快改变(注释从2002年开始)。但是,当使用数据库(例如MySQL)时,它们有时可能会派上用场。关于如何模拟无符号数字有很多问题。例如: Java中的unsigned short 所有这些肤浅描述它是如何 _能_做到。但是它有什么实际图书馆去所有的方式和实施适当的包装,,,?最好,这些包装器将扩展并提供类似于的算术API 。 从

  • 问题内容: 我可以在android中使用什么功能将数字显示为不同的格式。 例如:如果我输入1000,则它应显示为1000。如果输入10000,则应显示为10,000。如果输入1000000,则应显示为1,000,000。 请指导我。 问题答案: 您可以使用数字并设置其格式 结果将是 为1000000 为10000 为1000 更新12/02/2019 如@DreaminginCode在下面的注释中

  • 问题内容: 我了解Java中的无符号右移运算符“ >>>”是什么,但是为什么我们需要它,为什么我们不需要相应的无符号左移运算符? 问题答案: 该运营商允许你将和为32位和64位 无符号 整型,这是从Java语言缺少的。 当您移动不代表数值的内容时,这很有用。例如,您可以使用32位s 表示黑白位图图像,其中每个位图在屏幕上编码32个像素。如果需要将图像向右滚动,则希望将an左侧的位变为零,以便可以轻