在我的功能文件中,我有小黄瓜的场景和场景大纲。我想在他们定义的测试中获得这些描述。例如
Scenario: Create a customer
或
Scenario Outline: Create a customer that has <item> items (item fed by a table)
我想在它定义的测试中使用上面的描述,以便于了解哪个测试将哪个用户放入数据库中。有没有办法从测试中获取此描述?
A
您可以使用钩子(参见https://www.baeldung.com/java-cucumber-hooks)
@Before
public void beforeScenario(Scenario scenario) {
System.out.println("Before scenario " + scenario.getName());
}
如果您想在步骤之间共享此内容,并且您正在使用 cucumber-spring,则可能需要使用
cucumber-glue
范围。
public class MyContext {
private Scenario scenario;
// getter / setter
}
@Configuration
public class MyConfiguration {
@Bean @Scope("cucumber-glue")
public MyContext myContext() {
return new MyContext();
}
}
public class MySteps1 {
@Autowired
private MyContext myContext;
@Before
public void beforeScenario(Scenario scenario) {
myContext.setScenario(scenario);
}
}
public class MySteps2 {
@Autowired
private MyContext myContext;
@When("something happens")
public void somethingHappens() {
System.out.println("About to do something for " + scenario.getName());
}
}