testify
testify copied to clipboard
TearDownSuite (an possibly all trigger methods) not parallel safe
package testifysuitedemo
import (
"testing"
"github.com/stretchr/testify/suite"
)
type SampleSuite struct {
suite.Suite
}
func (suite *SampleSuite) SetupSuite() {
suite.T().Log("setup suite...")
}
func (suite *SampleSuite) TearDownSuite() {
suite.T().Log("teardown suite...")
}
func TestSampleSuite(t *testing.T) {
suite.Run(t, &SampleSuite{})
}
func (suite *SampleSuite) SetupTest() {
suite.T().Log("setup test...")
}
func (suite *SampleSuite) TearDownTest() {
suite.T().Log("teardown test...")
}
func (suite *SampleSuite) BeforeTest(suiteName, testName string) {
suite.T().Logf("before test: %q from %q suite...", testName, suiteName)
}
func (suite *SampleSuite) AfterTest(suiteName, testName string) {
suite.T().Logf("after test: %q from %q suite...", testName, suiteName)
}
//---------------------------------------------------------------------
func (suite *SampleSuite) TestTrue() {
suite.T().Parallel()
suite.True(true)
}
func (suite *SampleSuite) TestNoError() {
suite.T().Parallel()
suite.NoError(nil)
}
func (suite *SampleSuite) TestEqual() {
suite.T().Parallel()
suite.Equal(0, 0)
}
On my machine TearDownSuite fires before other trigger methods:
$ go test -v ./...
=== RUN TestSampleSuite
suite_test.go:14: setup suite...
=== RUN TestSampleSuite/TestEqual
suite_test.go:26: setup test...
suite_test.go:34: before test: "TestEqual" from "SampleSuite" suite...
=== PAUSE TestSampleSuite/TestEqual
=== RUN TestSampleSuite/TestNoError
suite_test.go:26: setup test...
suite_test.go:34: before test: "TestNoError" from "SampleSuite" suite...
=== PAUSE TestSampleSuite/TestNoError
=== RUN TestSampleSuite/TestTrue
suite_test.go:26: setup test...
suite_test.go:34: before test: "TestTrue" from "SampleSuite" suite...
=== PAUSE TestSampleSuite/TestTrue
suite_test.go:18: teardown suite... <==================================== HERE!!!
=== CONT TestSampleSuite/TestEqual
=== CONT TestSampleSuite/TestTrue
suite_test.go:38: after test: "TestEqual" from "SampleSuite" suite...
suite_test.go:30: teardown test...
suite_test.go:38: after test: "TestTrue" from "SampleSuite" suite...
=== CONT TestSampleSuite
suite_test.go:30: teardown test...
=== CONT TestSampleSuite/TestNoError
suite_test.go:38: after test: "TestNoError" from "SampleSuite" suite...
suite_test.go:30: teardown test...
--- PASS: TestSampleSuite (0.00s)
--- PASS: TestSampleSuite/TestEqual (0.00s)
--- PASS: TestSampleSuite/TestTrue (0.00s)
--- PASS: TestSampleSuite/TestNoError (0.00s)
PASS
ok testify-suite-demo 0.007s