diff --git a/tea/plan.go b/tea/plan.go index 7105491..000eba9 100644 --- a/tea/plan.go +++ b/tea/plan.go @@ -10,21 +10,18 @@ type step struct { } func (s *step) run(t *testing.T) { - if s.skip { + name := "" + for s := s; s != nil; s = s.next { + name += s.name if s.next != nil { - s.next.skip = true - t.Run(s.next.name, s.next.run) + name += "/" } - t.SkipNow() } - - s.Test.Run(t) - if s.next != nil { - if t.Failed() || t.Skipped() { - s.next.skip = true + t.Run(name, func(t *testing.T) { + for s := s; s != nil; s = s.next { + s.Test.Run(t) } - t.Run(s.next.name, s.next.run) - } + }) } func (t *Tree) plan() []step { diff --git a/tea/tree.go b/tea/tree.go index c562a65..aa2aaef 100644 --- a/tea/tree.go +++ b/tea/tree.go @@ -1,7 +1,6 @@ package tea import ( - // "reflect" "testing" ) @@ -9,7 +8,7 @@ import ( func Run(t *testing.T, tree *Tree) { plan := tree.plan() for _, step := range plan { - t.Run(step.name, step.run) + step.run(t) } } @@ -39,8 +38,4 @@ func parseName(test Test) string { return s.String() } return "???" - // T := reflect.TypeOf(test) - // for i := 0; i < T.NumField(); i++ { - // field := T.Field(i) - // } }