func (self *XmlBuilder) getFailure(test *gauge_messages.ProtoScenario) (string, string) {
	msg, content := self.getFailureFromExecutionResult(test.GetPreHookFailure(), test.GetPostHookFailure(), nil, "Scenario ")
	return self.perform(msg, content, func(test *gauge_messages.ProtoScenario) (string, string) {
		msg, content = self.getFailureFromSteps(test.GetContexts())
		return self.perform(msg, content, func(test *gauge_messages.ProtoScenario) (string, string) {
			return self.getFailureFromSteps(test.GetScenarioItems())
		}, test)
	}, test)
}
func (self *XmlBuilder) getScenarioContent(result *gauge_messages.ProtoSpecResult, scenario *gauge_messages.ProtoScenario, ts *JUnitTestSuite) {
	testCase := JUnitTestCase{
		Classname: result.GetProtoSpec().GetSpecHeading(),
		Name:      scenario.GetScenarioHeading(),
		Time:      formatTime(int(scenario.GetExecutionTime())),
		Failure:   nil,
	}
	if scenario.GetFailed() {
		message, content := self.getFailure(scenario)
		testCase.Failure = &JUnitFailure{
			Message:  message,
			Type:     message,
			Contents: content,
		}
	} else if scenario.GetSkipped() {
		testCase.SkipMessage = &JUnitSkipMessage{
			Message: strings.Join(scenario.SkipErrors, "\n"),
		}
	}
	ts.TestCases = append(ts.TestCases, testCase)
}