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