github.com/criteo/command-launcher@v0.0.0-20230407142452-fb616f546e98/internal/helper/test-cmd.go (about)

     1  package helper
     2  
     3  import (
     4  	"bytes"
     5  	"io/ioutil"
     6  
     7  	"github.com/spf13/cobra"
     8  )
     9  
    10  func TestCommand(cmd *cobra.Command, args ...string) (string, error) {
    11  	buf := new(bytes.Buffer)
    12  	cmd.SetOut(buf)
    13  	cmd.SetErr(buf)
    14  	cmd.SetArgs(args)
    15  	err := cmd.Execute()
    16  
    17  	if err != nil {
    18  		return "", err
    19  	}
    20  
    21  	out, err := ioutil.ReadAll(buf)
    22  	if err != nil {
    23  		return "", err
    24  	}
    25  
    26  	return string(out), nil
    27  }