junit: Add Testsuites.WriteXML method

This commit is contained in:
Joël Stemmer
2022-09-27 21:04:24 +01:00
parent b1271c39f9
commit 075629ad5f
3 changed files with 44 additions and 14 deletions

View File

@ -64,32 +64,21 @@ func (c Config) Run(input io.Reader, output io.Writer) (*gtr.Report, error) {
}
}
if err = c.writeXML(output, report); err != nil {
if err = c.writeJunitXML(output, report); err != nil {
return nil, err
}
return &report, nil
}
func (c Config) writeXML(w io.Writer, report gtr.Report) error {
func (c Config) writeJunitXML(w io.Writer, report gtr.Report) error {
testsuites := junit.CreateFromReport(report, c.Hostname)
if !c.SkipXMLHeader {
_, err := fmt.Fprintf(w, xml.Header)
if err != nil {
return err
}
}
enc := xml.NewEncoder(w)
enc.Indent("", "\t")
if err := enc.Encode(testsuites); err != nil {
return err
}
if err := enc.Flush(); err != nil {
return err
}
_, err := fmt.Fprintf(w, "\n")
return err
return testsuites.WriteXML(w)
}
func (c Config) gotestOptions() []gotest.Option {