问题
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?
回答1:
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.
来源:https://stackoverflow.com/questions/35550386/cucumber-jvm-hooks-when-scenario-is-passed-or-failed