diff --git a/run.go b/run.go index bae334a..7d2351c 100644 --- a/run.go +++ b/run.go @@ -118,10 +118,6 @@ func RunWithOptions(suite string, contextInitializer func(suite *Suite), opt Opt r := rand.New(rand.NewSource(time.Now().UTC().UnixNano())) seed = r.Int63n(99998) + 1 } - if seed != 0 { - // init global rand module (concurrent safe) with our seed - rand.Seed(seed) - } r := runner{ fmt: formatter(suite, output), diff --git a/suite.go b/suite.go index e386f75..d6c1631 100644 --- a/suite.go +++ b/suite.go @@ -337,7 +337,8 @@ func (s *Suite) runFeature(f *feature) { // then shuffle it if we are randomizing scenarios scenarios := make([]interface{}, len(f.ScenarioDefinitions)) if s.randomSeed != 0 { - perm := rand.Perm(len(f.ScenarioDefinitions)) + r := rand.New(rand.NewSource(s.randomSeed)) + perm := r.Perm(len(f.ScenarioDefinitions)) for i, v := range perm { scenarios[v] = f.ScenarioDefinitions[i] }