@@ -636,19 +636,81 @@ func getTestRunnerScriptCommand() *cobra.Command {
636636
637637func 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
654716func getTestRunnerPolicyCommand () * cobra.Command {
0 commit comments