I want to specify certain setup and tear down steps for each specific feature file. I've seen hooks that allows code to execute before every scenario, and hooks to execute code before each feature, but I want to specify code to run once before and after all scenarios run for one specific feature.
Is this possible?
The execution order of Hooks Execution order will be Before Hook 0 -> Before Hook 1 -> Scenario -> After Hook 1 -> After Hook 0. Before the first step of each scenario, Before hooks will be run.
We use the annotations to create a unit test class and a separate steps class. The standard @Before stuff goes in the steps class, but the @BeforeClass annotation can be used in the main unit test class: @RunWith(Cucumber. class) @Cucumber.
Do you use cucumber-jvm? I found an article that fits your requirement.
http://zsoltfabok.com/blog/2012/09/cucumber-jvm-hooks/
Basically, do not use JUnit @BeforeClass and @AfterClass for this, as they are unaware of Cucumber Hook Tags. You would want Init and Teardown methods to run for certain scenarios only right?
It is if you are using junit to run your tests. We use the annotations to create a unit test class and a separate steps class. The standard @Before stuff goes in the steps class, but the @BeforeClass annotation can be used in the main unit test class:
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"json", "<the report file"},
features = {"<the feature file>"},
strict = false,
glue = {"<package with steps classes"})
public class SomeTestIT {
@BeforeClass
public static void setUp(){
...
}
@AfterClass
public static void tearDown(){
...
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With