Beispiel #1
0
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())
}