package main import ( "flag" "fmt" "os" "github.com/jstemmer/go-junit-report/formatter" "github.com/jstemmer/go-junit-report/parser" ) var ( noXMLHeader = flag.Bool("no-xml-header", false, "do not print xml header") packageName = flag.String("package-name", "", "specify a package name (compiled test have no package name in output)") goVersionFlag = flag.String("go-version", "", "specify the value to use for the go.version property in the generated XML") setExitCode = flag.Bool("set-exit-code", false, "set exit code to 1 if tests failed") ) func main() { flag.Parse() if flag.NArg() != 0 { fmt.Fprintf(os.Stderr, "%s does not accept positional arguments\n", os.Args[0]) flag.Usage() os.Exit(1) } // Read input report, err := parser.Parse(os.Stdin, *packageName) if err != nil { fmt.Printf("Error reading input: %s\n", err) os.Exit(1) } // Write xml err = formatter.JUnitReportXML(report, *noXMLHeader, *goVersionFlag, os.Stdout) if err != nil { fmt.Printf("Error writing XML: %s\n", err) os.Exit(1) } if *setExitCode && report.Failures() > 0 { os.Exit(1) } }