From f238e4b70a70cb5d186ba7586f25a11738418ca4 Mon Sep 17 00:00:00 2001 From: "Aaron N. Brock" Date: Wed, 4 Dec 2019 11:35:25 -0500 Subject: [PATCH] Move teardown defers to before setup --- suite/suite.go | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/suite/suite.go b/suite/suite.go index ce31c34..b666133 100644 --- a/suite/suite.go +++ b/suite/suite.go @@ -111,14 +111,6 @@ func Run(t *testing.T, suite TestingSuite) { suiteName := methodFinder.Elem().Name() if !suiteSetupDone { - if stats != nil { - stats.Start = time.Now() - } - - if setupAllSuite, ok := suite.(SetupAllSuite); ok { - setupAllSuite.SetupSuite() - } - defer func() { if tearDownAllSuite, ok := suite.(TearDownAllSuite); ok { testsSync.Wait() @@ -130,6 +122,9 @@ func Run(t *testing.T, suite TestingSuite) { suiteWithStats.HandleStats(suiteName, stats) } }() + if setupAllSuite, ok := suite.(SetupAllSuite); ok { + setupAllSuite.SetupSuite() + } suiteSetupDone = true } @@ -140,19 +135,6 @@ func Run(t *testing.T, suite TestingSuite) { parentT := suite.T() suite.SetT(t) defer failOnPanic(t) - - if setupTestSuite, ok := suite.(SetupTestSuite); ok { - setupTestSuite.SetupTest() - } - - if beforeTestSuite, ok := suite.(BeforeTest); ok { - beforeTestSuite.BeforeTest(methodFinder.Elem().Name(), method.Name) - } - - if stats != nil { - stats.start(method.Name) - } - defer func() { if stats != nil { passed := !t.Failed() @@ -169,6 +151,13 @@ func Run(t *testing.T, suite TestingSuite) { suite.SetT(parentT) }() + if setupTestSuite, ok := suite.(SetupTestSuite); ok { + setupTestSuite.SetupTest() + } + if beforeTestSuite, ok := suite.(BeforeTest); ok { + beforeTestSuite.BeforeTest(methodFinder.Elem().Name(), method.Name) + } + method.Func.Call([]reflect.Value{reflect.ValueOf(suite)}) }, }