fix panic handling on step run, was giving wrong results
Этот коммит содержится в:
родитель
8419e90c92
коммит
53f9c3ad1c
1 изменённых файлов: 15 добавлений и 15 удалений
30
suite.go
30
suite.go
|
@ -214,28 +214,28 @@ func (s *Suite) runStep(step *gherkin.Step, prevStepErr error) (err error) {
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
err, ok := e.(error)
|
var ok bool
|
||||||
|
err, ok = e.(error)
|
||||||
if !ok {
|
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)
|
s.fmt.Failed(step, match, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// run after step handlers
|
||||||
|
for _, f := range s.afterStepHandlers {
|
||||||
|
f(step, err)
|
||||||
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
err = match.run()
|
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
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче