fix panic handling on step run, was giving wrong results

Этот коммит содержится в:
gedi 2016-05-22 16:16:56 +03:00
родитель 8419e90c92
коммит 53f9c3ad1c

Просмотреть файл

@ -214,28 +214,28 @@ func (s *Suite) runStep(step *gherkin.Step, prevStepErr error) (err error) {
defer func() {
if e := recover(); e != nil {
err, ok := e.(error)
var ok bool
err, ok = e.(error)
if !ok {
err = fmt.Errorf(e.(string))
err = fmt.Errorf("%v", e)
}
}
switch err {
case nil:
s.fmt.Passed(step, match)
case ErrPending:
s.fmt.Pending(step, match)
default:
s.fmt.Failed(step, match, err)
}
// run after step handlers
for _, f := range s.afterStepHandlers {
f(step, err)
}
}()
err = match.run()
switch err {
case nil:
s.fmt.Passed(step, match)
case ErrPending:
s.fmt.Pending(step, match)
default:
s.fmt.Failed(step, match, err)
}
// run after step handlers
for _, f := range s.afterStepHandlers {
f(step, err)
}
return
}