Run helm tests in parallel with --parallel flag

Signed-off-by: Frank Hamand <frankhamand@gmail.com>
pull/4144/head
Frank Hamand 7 years ago
parent 1c7e0c37d9
commit 0b63ce8c71
No known key found for this signature in database
GPG Key ID: 3A94326B72FE75DF

@ -69,17 +69,40 @@ func (ts *TestSuite) Run(env *Environment) error {
env.streamMessage("No Tests Found", release.TestRun_UNKNOWN) env.streamMessage("No Tests Found", release.TestRun_UNKNOWN)
} }
var tests []*test
for _, testManifest := range ts.TestManifests { for _, testManifest := range ts.TestManifests {
test, err := newTest(testManifest) test, err := newTest(testManifest)
if err != nil { if err != nil {
return err return err
} }
if err := test.run(env); err != nil { 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 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() ts.CompletedAt = timeconv.Now()

Loading…
Cancel
Save