Made a fix for the unstable Randomize Run tests (#354)

Этот коммит содержится в:
Fredrik Lönnblad 2020-10-14 10:39:01 +02:00 коммит произвёл GitHub
родитель d4190b06d8
коммит d4c18852f0
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23

Просмотреть файл

@ -257,9 +257,8 @@ func bufErrorPipe(t *testing.T) (io.ReadCloser, func()) {
} }
} }
func Test_RandomizeRun(t *testing.T) { func Test_RandomizeRun_WithStaticSeed(t *testing.T) {
const noRandomFlag = 0 const noRandomFlag = 0
const createRandomSeedFlag = -1
const noConcurrencyFlag = 1 const noConcurrencyFlag = 1
const formatter = "pretty" const formatter = "pretty"
const featurePath = "internal/formatters/formatter-tests/features/with_few_empty_scenarios.feature" const featurePath = "internal/formatters/formatter-tests/features/with_few_empty_scenarios.feature"
@ -277,26 +276,49 @@ func Test_RandomizeRun(t *testing.T) {
noRandomFlag, []string{featurePath}, noRandomFlag, []string{featurePath},
) )
const staticSeed int64 = 1
actualStatus, actualOutput := testRun(t, actualStatus, actualOutput := testRun(t,
fmtOutputScenarioInitializer, fmtOutputScenarioInitializer,
formatter, noConcurrencyFlag, formatter, noConcurrencyFlag,
createRandomSeedFlag, []string{featurePath}, staticSeed, []string{featurePath},
) )
expectedSeed := parseSeed(actualOutput) actualSeed := parseSeed(actualOutput)
assert.NotZero(t, expectedSeed) assert.Equal(t, staticSeed, actualSeed)
// Removes "Randomized with seed: <seed>" part of the output // Removes "Randomized with seed: <seed>" part of the output
actualOutputSplit := strings.Split(actualOutput, "\n") actualOutputSplit := strings.Split(actualOutput, "\n")
actualOutputSplit = actualOutputSplit[:len(actualOutputSplit)-2] actualOutputSplit = actualOutputSplit[:len(actualOutputSplit)-2]
actualOutputReduced := strings.Join(actualOutputSplit, "\n") actualOutputReduced := strings.Join(actualOutputSplit, "\n")
assert.Equal(t, expectedStatus, actualStatus)
assert.NotEqual(t, expectedOutput, actualOutputReduced) assert.NotEqual(t, expectedOutput, actualOutputReduced)
assertOutput(t, formatter, expectedOutput, actualOutputReduced) assertOutput(t, formatter, expectedOutput, actualOutputReduced)
}
expectedStatus, expectedOutput = actualStatus, actualOutput func Test_RandomizeRun_RerunWithSeed(t *testing.T) {
const createRandomSeedFlag = -1
const noConcurrencyFlag = 1
const formatter = "pretty"
const featurePath = "internal/formatters/formatter-tests/features/with_few_empty_scenarios.feature"
actualStatus, actualOutput = testRun(t, fmtOutputScenarioInitializer := func(ctx *ScenarioContext) {
ctx.Step(`^(?:a )?failing step`, failingStepDef)
ctx.Step(`^(?:a )?pending step$`, pendingStepDef)
ctx.Step(`^(?:a )?passing step$`, passingStepDef)
ctx.Step(`^odd (\d+) and even (\d+) number$`, oddEvenStepDef)
}
expectedStatus, expectedOutput := testRun(t,
fmtOutputScenarioInitializer,
formatter, noConcurrencyFlag,
createRandomSeedFlag, []string{featurePath},
)
expectedSeed := parseSeed(expectedOutput)
assert.NotZero(t, expectedSeed)
actualStatus, actualOutput := testRun(t,
fmtOutputScenarioInitializer, fmtOutputScenarioInitializer,
formatter, noConcurrencyFlag, formatter, noConcurrencyFlag,
expectedSeed, []string{featurePath}, expectedSeed, []string{featurePath},