func (e *scenarioExecutor) execute(scenarioResult *result.ScenarioResult, scenario *gauge.Scenario) { scenarioResult.ProtoScenario.Skipped = proto.Bool(false) if _, ok := e.errMap.ScenarioErrs[scenario]; ok { setSkipInfoInResult(scenarioResult, scenario, e.errMap) return } res := e.initScenarioDataStore() if res.GetFailed() { e.consoleReporter.Errorf("Failed to initialize scenario datastore. Error: %s", res.GetErrorMessage()) e.handleScenarioDataStoreFailure(scenarioResult, scenario, fmt.Errorf(res.GetErrorMessage())) return } e.consoleReporter.ScenarioStart(scenarioResult.ProtoScenario.GetScenarioHeading()) e.notifyBeforeScenarioHook(scenarioResult) if !scenarioResult.ProtoScenario.GetFailed() { e.executeContextSteps(scenarioResult) if !scenarioResult.GetFailure() { e.executeScenarioSteps(scenarioResult) } e.executeTearDownSteps(scenarioResult) } e.notifyAfterScenarioHook(scenarioResult) scenarioResult.UpdateExecutionTime() e.consoleReporter.ScenarioEnd(scenarioResult.GetFailure()) }
func (e *stepExecutor) execute(scenarioResult *result.ScenarioResult) { e.executeContextSteps(scenarioResult) if !scenarioResult.GetFailure() { e.executeScenarioSteps(scenarioResult) } e.executeTearDownSteps(scenarioResult) }