Search code examples
javacucumbercucumber-jvm

Run cucumber feature from within feature?


I am wondering if it is possible to run a cucumber feature from within another feature? For example:

@When("^I am at the User list page$")
public void I_am_at_the_User_list_page() throws InterruptedException {
    if(!driver.findElement(By.xpath("//a[contains(text(), 'User List')]")).isDisplayed()){
        driver.findElement(By.xpath("//td[contains(text(), 'Management')]")).click();
    }
    driver.findElement(By.xpath("//a[contains(text(), 'User List')]")).click();
    Assert.assertTrue("User list is showing", driver.getTitle().equals("Admin Portal -User list"));
    if(driver.findElements(By.xpath("//td[text()='\" + loginNewUserUsername() + \"']")).isEmpty()){
        //run.cucumber.feature(deleteuser.feature);//
    }
    driver.findElement(By.xpath("//a[contains(text(), 'Add User')]")).click();
    Assert.assertTrue("Entered Add User site", driver.findElement(By.id("editUserForm:changePasswordCheckBox")).isDisplayed());
}

Solution

  • While I would not do that as it becomes messy, tangled, the effect can be achieved indirectly by calling steps (methods).

    if(...).isEmpty()){
    
      //call the methods/steps that makes up your feature/scenarios
    
      I_am_at_the_User_list_page();
      I_enter_username_as("blah");    
    }