diff --git a/pkg/releasetesting/test_suite.go b/pkg/releasetesting/test_suite.go index e2182fa3c..f6324b711 100644 --- a/pkg/releasetesting/test_suite.go +++ b/pkg/releasetesting/test_suite.go @@ -69,17 +69,40 @@ func (ts *TestSuite) Run(env *Environment) error { env.streamMessage("No Tests Found", release.TestRun_UNKNOWN) } + var tests []*test + for _, testManifest := range ts.TestManifests { test, err := newTest(testManifest) if err != nil { return err } - if err := test.run(env); err != nil { - return err + tests = append(tests, test) + } + + if env.Parallel { + c := make(chan error) + for _, t := range tests { + go func(t *test) { + c <- t.run(env) + }(t) + } + + for range tests { + if err := <-c; err != nil { + return err + } } + } else { + for _, t := range tests { + if err := t.run(env); err != nil { + return err + } + } + } - ts.Results = append(ts.Results, test.result) + for _, t := range tests { + ts.Results = append(ts.Results, t.result) } ts.CompletedAt = timeconv.Now()