Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cucumber-jvm Hooks when Scenario is passed or failed

In Jbehave we can execute method upon outcome of scenario success/failure. One of the below mentioned methods will execute after failure and success.

@AfterScenario(uponOutcome=AfterScenario.Outcome.SUCCESS)
public void afterSuccessfulScenario() {
// Some code to execute...
}

@AfterScenario(uponOutcome=AfterScenario.Outcome.FAILURE)
public void afterFailedScenario() {
// Some code to execute...
}

I'm trying to achieve the same thing in Cucumber-jvm. The scenario Hooks @Before and @After will execute after each scenario. But I want to execute some code for each failure scenario.

I am not sure how to implement it in cucumber-jvm. Any clue?

like image 478
vkrams Avatar asked Feb 22 '16 09:02

vkrams


1 Answers

You can achieve it using cucumber-jvm hooks. If a hook receive a Scenario as a parameter, you can know if it has failed or not.

Example:

@After
public void afterScenario(Scenario scenario) {
  if (scenario.isFailed()) {
     // Some code to execute...
  }
  if(scenario.isPassed()) {
     // Some code to execute...
  }
}

Note the import of @After:

import cucumber.api.java.After;

Hope it helps.

like image 110
troig Avatar answered Oct 02 '22 18:10

troig