java - Cucumber 类扩展步骤定义和 Hook

标签 java cucumber hook extend

我想从 Java 中的“AbstractBase_step”类进行扩展。所以我想要一个像这样的钩子(Hook):

public abstract class AbstractBase_Steps {
    protected Scenario scenario;
    @Before
    public void background(Scenario scenario) {
        this.scenario = scenario;
    }
}

为每个步骤文件调用:

public abstract class Hello_Steps extends AbstractBase_Steps {
}

当我这样做时,我得到了

cucumber.runtime.CucumberException: You're not allowed to extend classes that define Step Definitions or hooks. class Hello_Steps extends class AbstractBase_Steps

有人对此有窍门吗?

编辑:为了重用相同的步骤定义,我创建了一个新的类 Common_Steps 并将其包含在粘合路径中。因此它的定义可用于测试中的所有特征文件。

最佳答案

据我了解您的问题,您希望减少步骤的逻辑。这是解决方案。

1) 在这种情况下定义一个公共(public)类A,在像co.com.test

这样的通用包中包含步骤

2) 定义使用基础包的步骤配置

@CucumberOptions(format = {"pretty", "html:target/html/"},
features = {"src/test/resources/acceptance/general/general.feature"},
glue = {"co.com.test"})

3) 不从类 B 继承到 A 的特定步骤

会导致在所有包中搜索steps,找到通用步骤和特有步骤。

关于java - Cucumber 类扩展步骤定义和 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34771928/

相关文章:

java - Groovy/Java : Parallel processing of directory structure where each node is a list of subdirectories/files

java - 无法使用 log4j2 写入日志

ruby-on-rails - Cucumber 上的步骤定义在 Ruby on Rails 上找不到路径

jenkins - 尽管测试通过了,为什么 cucumber 在 Jenkins 上总是失败?

linux - 响应在内核的 NetFilter 中接收到的数据包

java - 程序运行时出现ArrayIndexOutOfBoundsException

java - 当我按回我的程序时,我看到一个空白屏幕

variables - 如何在标题中获取 cucumber 场景变量?

language-agnostic - 截取笔记本电脑上的 Fn 键

javascript - 如何让 React Native ActivityIndi​​cator 在 onPress 之后出现以显示正在加载某些内容?