Cucumber类扩展步骤定义和钩子

我想从java中的“AbstractBase_step”类扩展。 所以我想要一个像这样的钩子:

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:您不能扩展定义步骤定义或钩子的类。 类Hello_Steps扩展了类AbstractBase_Steps

有人有诀窍吗?

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

检查这个讨论 。

希望这可以帮助。

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

1)在这种情况下定义一个公共类A ,在co.com.test这样的通用包中包含co.com.test

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

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

3)不通过A的具体步骤从B类inheritance

这将导致在所有包中搜索步骤,并找到常用步骤和具体步骤。