Skip to content

Commit d2c779a

Browse files
committed
cmd,internal/testrunner{,/script}: implement script test reporting
Currently, it is not possible to direct tests to not emit any script run information during testing.
1 parent bd294f5 commit d2c779a

File tree

3 files changed

+163
-67
lines changed

3 files changed

+163
-67
lines changed

‎cmd/testrunner.go‎

Lines changed: 68 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -636,19 +636,81 @@ func getTestRunnerScriptCommand() *cobra.Command {
636636

637637
func testRunnerScriptCommandAction(cmd *cobra.Command, args []string) error {
638638
cmd.Println("Run script tests for the package")
639+
640+
var (
641+
opts script.Options
642+
err error
643+
)
644+
opts.Dir, err = cmd.Flags().GetString(cobraext.ScriptsFlagName)
645+
if err != nil {
646+
return err
647+
}
648+
opts.Streams, err = cmd.Flags().GetStringSlice(cobraext.DataStreamsFlagName)
649+
if err != nil {
650+
return cobraext.FlagParsingError(err, cobraext.DataStreamsFlagName)
651+
}
652+
opts.ExternalStack, err = cmd.Flags().GetBool(cobraext.ExternalStackFlagName)
653+
if err != nil {
654+
return err
655+
}
656+
opts.RunPattern, err = cmd.Flags().GetString(cobraext.RunPatternFlagName)
657+
if err != nil {
658+
return err
659+
}
660+
opts.Verbose, err = cmd.Flags().GetBool(cobraext.VerboseScriptFlagName)
661+
if err != nil {
662+
return err
663+
}
664+
opts.UpdateScripts, err = cmd.Flags().GetBool(cobraext.UpdateScriptTestArchiveFlagName)
665+
if err != nil {
666+
return err
667+
}
668+
opts.ContinueOnError, err = cmd.Flags().GetBool(cobraext.ContinueOnErrorFlagName)
669+
if err != nil {
670+
return err
671+
}
672+
opts.TestWork, err = cmd.Flags().GetBool(cobraext.WorkScriptTestFlagName)
673+
if err != nil {
674+
return err
675+
}
676+
639677
pkgRoot, err := packages.FindPackageRoot()
640678
if err != nil {
641679
if err == packages.ErrPackageRootNotFound {
642680
return errors.New("package root not found")
643681
}
644682
return fmt.Errorf("locating package root failed: %w", err)
645683
}
646-
pkg := filepath.Base(pkgRoot)
647-
cmd.Printf("--- Test results for package: %s - START ---\n", pkg)
648-
err = script.Run(cmd.OutOrStderr(), cmd, args)
649-
cmd.Printf("--- Test results for package: %s - END ---\n", pkg)
650-
cmd.Println("Done")
651-
return err
684+
manifest, err := packages.ReadPackageManifestFromPackageRoot(pkgRoot)
685+
if err != nil {
686+
return fmt.Errorf("reading package manifest failed (path: %s): %w", pkgRoot, err)
687+
}
688+
689+
reportFormat, err := cmd.Flags().GetString(cobraext.ReportFormatFlagName)
690+
if err != nil {
691+
return cobraext.FlagParsingError(err, cobraext.ReportFormatFlagName)
692+
}
693+
reportOutput, err := cmd.Flags().GetString(cobraext.ReportOutputFlagName)
694+
if err != nil {
695+
return cobraext.FlagParsingError(err, cobraext.ReportOutputFlagName)
696+
}
697+
testCoverage, err := cmd.Flags().GetBool(cobraext.TestCoverageFlagName)
698+
if err != nil {
699+
return cobraext.FlagParsingError(err, cobraext.TestCoverageFlagName)
700+
}
701+
testCoverageFormat, err := cmd.Flags().GetString(cobraext.TestCoverageFormatFlagName)
702+
if err != nil {
703+
return cobraext.FlagParsingError(err, cobraext.TestCoverageFormatFlagName)
704+
}
705+
706+
opts.Package = manifest.Name
707+
708+
var results []testrunner.TestResult
709+
err = script.Run(&results, cmd.OutOrStderr(), opts)
710+
if err != nil {
711+
return err
712+
}
713+
return processResults(results, "script", reportFormat, reportOutput, pkgRoot, manifest.Name, manifest.Type, testCoverageFormat, testCoverage)
652714
}
653715

654716
func getTestRunnerPolicyCommand() *cobra.Command {

0 commit comments

Comments
 (0)