After Step and before Step Cucumber

2019-08-06 11:41发布

问题:

I want to execute something before and after each step(not scenario). How do I do that in Cucumber ?

Like the after and before in junit.

** I am using java.

回答1:

There should be something like AfterStep (haven't found BeforeStep yet)

AfterStep do #After every step #this is also before the next step... end

If you want to filter these for certain steps, do

AfterStep('@cucumis', '@sativus') do # This will only run after steps within scenarios tagged # with @cucumis AND @sativus. end

Reference: https://github.com/cucumber/cucumber/wiki/Hooks



回答2:

In recent version of io.cucumber, both @AfterStep and @BeforeStep hooks are available,

import cucumber.api.java.AfterStep;
import cucumber.api.java.BeforeStep;

public class Hooks {

    @BeforeStep
    public void beforeStep() {
        System.out.println("======>  This is before step  <======");
        //Do something before executing the step
    }

    @AfterStep
    public void afterStep() {
        System.out.println("======>  This is after step  <======");
        //Do something after executing the step
    }

}


回答3:

BeforeStep and AfterStep hooks are available in the latest cucumber jvm api. Just update your pom with the latest version for cucumber-jvm. For more information just go through the link below :

https://github.com/damianszczepanik/maven-cucumber-reporting/issues/100