我想访问@before
钩子中的所有 cucumber 场景步骤。有没有办法做到这一点?
我尝试在before hook方法中传递cucumber场景对象,但它只提供了scenario.getName()
,scenario.getId()
等基本信息。我需要的是getSteps()
,它给予了该特定场景的所有步骤的List<String>
。
我要找的是这样的东西
@Before("@dev")
public void testcase(Scenario scenario){
for (Step a : scenario.getSteps()) {
System.out.println("scenario step = " + a.getText());
}
}
基本上,我希望在测试执行本身开始时获得完整的场景信息。
如果我在before方法中传递cucumber.API.TestCase类的参数,那么我就可以访问getTestSteps()
方法,但这会导致下面的异常。
cucumber.runtime.CucumberException: When a hook declares an argument it must be of type cucumber.api.Scenario. public void com.thermofisher.bid.spa.kingfisher.ui.steps.Hooks.poc(cucumber.api.TestCase)
5条答案
按热度按时间xxe27gdn1#
试试这样的方法:
ahy6op9u2#
** java **
参见
cucumber-jvm/core/src/main/java/io/cucumber/core/runner/TestCase.java
下的TestCase
接口https://github.com/cucumber/cucumber-jvm/blob/main/core/src/main/java/io/cucumber/core/runner/TestCase.java
**Ruby:**将给予所有步骤的列表。
oiopk7p53#
使用Cucumber 6.10.3可以做到这一点,代码如下:
进口:
依赖关系:(你只需要'cucumber-java8'或'cucumber-java')
xsuvu9jc4#
虽然很丑,但对我来说很好:
如果需要进口:
eimct9ow5#
Cucumber不提供直接获取Hook中场景完整信息的方法,有Scenario接口,只能给予非常有限的信息,如场景名称等,下面是该接口的其他直接方法。