Merging suite_order_test in suite test, removing anonymous defer func call

pull/869/head
devdinu 2020-01-16 08:23:53 +05:30 committed by Boyan Soubachov
parent e7b6c14305
commit 3c60a0e014
3 changed files with 40 additions and 50 deletions

View File

@ -114,9 +114,7 @@ func Run(t *testing.T, suite TestingSuite) {
test := testing.InternalTest{
Name: method.Name,
F: func(t *testing.T) {
defer func() {
testsSync.Done()
}()
defer testsSync.Done()
parentT := suite.T()
suite.SetT(t)
defer failOnPanic(t)

View File

@ -1,47 +0,0 @@
package suite
import (
"math/rand"
"strings"
"testing"
"time"
"github.com/stretchr/testify/assert"
)
type CallOrderSuite struct {
Suite
callOrder []string
}
func (s *CallOrderSuite) call(method string) {
time.Sleep(time.Duration(rand.Intn(300)) * time.Millisecond)
s.callOrder = append(s.callOrder, method)
}
func TestSuiteCallOrder(t *testing.T) {
Run(t, new(CallOrderSuite))
}
func (s *CallOrderSuite) SetupSuite() {
s.call("SetupSuite")
}
func (s *CallOrderSuite) TearDownSuite() {
s.call("TearDownSuite")
assert.Equal(s.T(), "SetupSuite;SetupTest;Test A;TearDownTest;SetupTest;Test B;TearDownTest;TearDownSuite", strings.Join(s.callOrder, ";"))
}
func (s *CallOrderSuite) SetupTest() {
s.call("SetupTest")
}
func (s *CallOrderSuite) TearDownTest() {
s.call("TearDownTest")
}
func (s *CallOrderSuite) Test_A() {
s.call("Test A")
}
func (s *CallOrderSuite) Test_B() {
s.call("Test B")
}

View File

@ -3,7 +3,9 @@ package suite
import (
"errors"
"io/ioutil"
"math/rand"
"os"
"strings"
"testing"
"time"
@ -443,3 +445,40 @@ func TestSuiteLogging(t *testing.T) {
assert.NotContains(t, output, "TESTLOGPASS")
}
}
type CallOrderSuite struct {
Suite
callOrder []string
}
func (s *CallOrderSuite) call(method string) {
time.Sleep(time.Duration(rand.Intn(300)) * time.Millisecond)
s.callOrder = append(s.callOrder, method)
}
func TestSuiteCallOrder(t *testing.T) {
Run(t, new(CallOrderSuite))
}
func (s *CallOrderSuite) SetupSuite() {
s.call("SetupSuite")
}
func (s *CallOrderSuite) TearDownSuite() {
s.call("TearDownSuite")
assert.Equal(s.T(), "SetupSuite;SetupTest;Test A;TearDownTest;SetupTest;Test B;TearDownTest;TearDownSuite", strings.Join(s.callOrder, ";"))
}
func (s *CallOrderSuite) SetupTest() {
s.call("SetupTest")
}
func (s *CallOrderSuite) TearDownTest() {
s.call("TearDownTest")
}
func (s *CallOrderSuite) Test_A() {
s.call("Test A")
}
func (s *CallOrderSuite) Test_B() {
s.call("Test B")
}