Print test status

Signed-off-by: Jacob LeGrone <git@jacob.work>
pull/6363/head
Jacob LeGrone 5 years ago
parent 6f18519957
commit 0645b92c1b
No known key found for this signature in database
GPG Key ID: 5FD0852F235368C1

@ -24,6 +24,7 @@ import (
"helm.sh/helm/v3/cmd/helm/require" "helm.sh/helm/v3/cmd/helm/require"
"helm.sh/helm/v3/pkg/action" "helm.sh/helm/v3/pkg/action"
"helm.sh/helm/v3/pkg/cli/output"
) )
const releaseTestHelp = ` const releaseTestHelp = `
@ -35,6 +36,7 @@ The tests to be run are defined in the chart that was installed.
func newReleaseTestCmd(cfg *action.Configuration, out io.Writer) *cobra.Command { func newReleaseTestCmd(cfg *action.Configuration, out io.Writer) *cobra.Command {
client := action.NewReleaseTesting(cfg) client := action.NewReleaseTesting(cfg)
var outfmt output.Format
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "test [RELEASE]", Use: "test [RELEASE]",
@ -42,7 +44,12 @@ func newReleaseTestCmd(cfg *action.Configuration, out io.Writer) *cobra.Command
Long: releaseTestHelp, Long: releaseTestHelp,
Args: require.ExactArgs(1), Args: require.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error { RunE: func(cmd *cobra.Command, args []string) error {
return client.Run(args[0]) rel, err := client.Run(args[0])
if err != nil {
return err
}
return outfmt.Write(out, &statusPrinter{rel, settings.Debug})
}, },
} }

@ -97,13 +97,15 @@ func (s statusPrinter) WriteTable(out io.Writer) error {
fmt.Fprintf(out, "REVISION: %d\n", s.release.Version) fmt.Fprintf(out, "REVISION: %d\n", s.release.Version)
executions := executionsByHookEvent(s.release) executions := executionsByHookEvent(s.release)
if tests, ok := executions[release.HookTest]; ok { if tests, ok := executions[release.HookTest]; !ok || len(tests) == 0 {
fmt.Fprintln(out, "TEST SUITE: None")
} else {
for _, h := range tests { for _, h := range tests {
// Don't print anything if hook has not been initiated // Don't print anything if hook has not been initiated
if h.LastRun.StartedAt.IsZero() { if h.LastRun.StartedAt.IsZero() {
continue continue
} }
fmt.Fprintf(out, "TEST SUITE: %s\n%s\n%s\n%s\n\n", fmt.Fprintf(out, "TEST SUITE: %s\n%s\n%s\n%s\n",
h.Name, h.Name,
fmt.Sprintf("Last Started: %s", h.LastRun.StartedAt.Format(time.ANSIC)), fmt.Sprintf("Last Started: %s", h.LastRun.StartedAt.Format(time.ANSIC)),
fmt.Sprintf("Last Completed: %s", h.LastRun.CompletedAt.Format(time.ANSIC)), fmt.Sprintf("Last Completed: %s", h.LastRun.CompletedAt.Format(time.ANSIC)),

@ -3,6 +3,7 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None
USER-SUPPLIED VALUES: USER-SUPPLIED VALUES:
name: value name: value

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -3,5 +3,6 @@ LAST DEPLOYED: Sat Jan 16 00:00:00 2016
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 0 REVISION: 0
TEST SUITE: None
NOTES: NOTES:
release notes release notes

@ -7,9 +7,7 @@ TEST SUITE: passing-test
Last Started: Mon Jan 2 15:04:05 2006 Last Started: Mon Jan 2 15:04:05 2006
Last Completed: Mon Jan 2 15:04:07 2006 Last Completed: Mon Jan 2 15:04:07 2006
Phase: Succeeded Phase: Succeeded
TEST SUITE: failing-test TEST SUITE: failing-test
Last Started: Mon Jan 2 15:10:05 2006 Last Started: Mon Jan 2 15:10:05 2006
Last Completed: Mon Jan 2 15:10:07 2006 Last Completed: Mon Jan 2 15:10:07 2006
Phase: Failed Phase: Failed

@ -3,3 +3,4 @@ LAST DEPLOYED: Sat Jan 16 00:00:00 2016
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 0 REVISION: 0
TEST SUITE: None

@ -3,3 +3,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 1 REVISION: 1
TEST SUITE: None

@ -4,3 +4,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 2 REVISION: 2
TEST SUITE: None

@ -4,3 +4,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 2 REVISION: 2
TEST SUITE: None

@ -4,3 +4,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 5 REVISION: 5
TEST SUITE: None

@ -4,3 +4,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 6 REVISION: 6
TEST SUITE: None

@ -4,3 +4,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 4 REVISION: 4
TEST SUITE: None

@ -4,3 +4,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 3 REVISION: 3
TEST SUITE: None

@ -4,3 +4,4 @@ LAST DEPLOYED: Fri Sep 2 22:04:05 1977
NAMESPACE: default NAMESPACE: default
STATUS: deployed STATUS: deployed
REVISION: 3 REVISION: 3
TEST SUITE: None

@ -40,25 +40,25 @@ func NewReleaseTesting(cfg *Configuration) *ReleaseTesting {
} }
// Run executes 'helm test' against the given release. // Run executes 'helm test' against the given release.
func (r *ReleaseTesting) Run(name string) error { func (r *ReleaseTesting) Run(name string) (*release.Release, error) {
if err := r.cfg.KubeClient.IsReachable(); err != nil { if err := r.cfg.KubeClient.IsReachable(); err != nil {
return err return nil, err
} }
if err := validateReleaseName(name); err != nil { if err := validateReleaseName(name); err != nil {
return errors.Errorf("releaseTest: Release name is invalid: %s", name) return nil, errors.Errorf("releaseTest: Release name is invalid: %s", name)
} }
// finds the non-deleted release with the given name // finds the non-deleted release with the given name
rel, err := r.cfg.Releases.Last(name) rel, err := r.cfg.Releases.Last(name)
if err != nil { if err != nil {
return err return rel, err
} }
if err := r.cfg.execHook(rel, release.HookTest, r.Timeout); err != nil { if err := r.cfg.execHook(rel, release.HookTest, r.Timeout); err != nil {
r.cfg.Releases.Update(rel) r.cfg.Releases.Update(rel)
return err return rel, err
} }
return r.cfg.Releases.Update(rel) return rel, r.cfg.Releases.Update(rel)
} }

Loading…
Cancel
Save