This is my cukesfile
@RunWith(Cucumber.class)
@CucumberOptions(
features = {"src/test/resources/features/SellerApp/Dashboard/QuickSearch/Dashboard_QuickSearch.feature"},
plugin = {"pretty", "html:target/cucumber-report.html"},
glue={"steps"},
tags = "@run",
monochrome = true)
public class CukesFeaturesRunnerTest {
@BeforeClass
public static void executeBeforeTests() {
if (StringUtils.equalsAnyIgnoreCase(getConfigValue("env"), "ci")) {
System.out.println("Running test in headless mode");
Configuration.headless = true;
}
Configuration.headless = true;
Configuration.timeout = 12000;
Configuration.browserSize = "1600x900";
PluginsApi pluginsApi = new PluginsApi();
XolaApi xolaApi = new XolaApi();
if (StringUtils.equalsAnyIgnoreCase(getConfigValue("env"), "ci")) {
if (StringUtils.containsIgnoreCase(System.getenv("GO_JOB_NAME"), "traveler-app")) {
xolaApi.verifyX2TravelerAppIsRunning();
xolaApi.verifyX2SellerAppIsRunning();
} else {
xolaApi.verifyX2SellerAppIsRunning();
}
}
pluginsApi.getAllInstalledPluginId();
}
@AfterClass
public static void executeAfterTests() {
}
}
Cucumber will execute all features in a directory and its sub directories. So to execute all features in the features
directory you'd use.
@CucumberOptions(
features = {"src/test/resources/features},
...
)
Then to select a single scenario, tag it with @run
and use:
@CucumberOptions(
features = {"src/test/resources/features},
tags = "@run",
...
)
Or if you are on a recent version of Cucumber and using an IDE such as IDEA you can also select scenario to run from the UI.
Doing this does mean that the @BeforeClass
and @AfterClass
are not invoked anymore. So you should replace these with the @BeforeAll
and @AfterAll
hooks from Cucumber(note: pull the code out of the runner and put with your other step definitions or Cucumber won't find them).
https://github.com/cucumber/cucumber-jvm/tree/main/cucumber-java#beforeall--afterall