56
// canonical failure type (for example TIMEOUT or CRASH), and Failure.Data is
57
// intentionally left empty.
59
>
var testcases []junit.Testcase
60
>
for _, name := range names {
61
>
testcases = append(testcases, junit.Testcase{
62
>
Name: fmt.Sprintf("%s (%s)", name, suffix),
63
>
Failure: generateFailure(kind, ""),
64
>
})
65
>
}
66
>
return &junitReport{
67
>
Testsuites: junit.Testsuites{
68
>
Suites: []junit.Testsuite{
69
>
{
70
>
Name: "suite",
71
>
Testcases: testcases,
72
>
},
73
>
},
74
>
},
75
>
}
76
}
77
79
>
return &junit.Result{
80
>
Message: string(kind),
81
>
Type: string(kind),
82
>
Data: data,
83
>
}
84
>
}
85
87
>
f, err := os.Create(j.path)
88
>
if err != nil {
89
return fmt.Errorf("failed to open junit report file: %w", err)
90
}
92
>
93
>
encoder := xml.NewEncoder(f)
94
>
encoder.Indent("", " ")
95
>
if err = encoder.Encode(j.Testsuites); err != nil {
96
return fmt.Errorf("failed to write junit report file: %w", err)
97
}
99
>
return nil
100
}
101