oss.indeed.com/go/go-opine@v1.3.0/internal/junit/junit.go (about)

     1  // Package junit is for writing JUnit XML reports.
     2  package junit
     3  
     4  import (
     5  	"io"
     6  	"os"
     7  
     8  	"oss.indeed.com/go/go-opine/internal/run"
     9  )
    10  
    11  // Write a JUnit XML file from the provided Go test output.
    12  func Write(goTestOutput, outPath string) error {
    13  	junitOut, _, err := run.Cmd(
    14  		"go",
    15  		run.Args("run", "github.com/jstemmer/go-junit-report@v0.9.1"),
    16  		run.Stdin(goTestOutput),
    17  		run.Log(io.Discard),
    18  	)
    19  	if err != nil {
    20  		return err
    21  	}
    22  	if err := os.WriteFile(outPath, []byte(junitOut), 0666); err != nil { //nolint:gosec
    23  		return err
    24  	}
    25  	return nil
    26  }