mirror of
https://github.com/jstemmer/go-junit-report.git
synced 2025-07-03 20:52:47 -05:00
Include test output and stdout in test failures
This commit is contained in:
@ -1212,6 +1212,219 @@ var testCases = []TestCase{
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
// generated by running go test on https://gist.github.com/liggitt/09a021ccec988b19917e0c2d60a18ee9
|
||||
name: "30-stdout.txt",
|
||||
reportName: "30-report.xml",
|
||||
report: &parser.Report{
|
||||
Packages: []parser.Package{
|
||||
{
|
||||
Name: "package/name1",
|
||||
Duration: 4567 * time.Millisecond,
|
||||
Time: 4567,
|
||||
Tests: []*parser.Test{
|
||||
{
|
||||
Name: "TestFailWithStdoutAndTestOutput",
|
||||
Duration: 100 * time.Millisecond,
|
||||
Time: 100,
|
||||
Result: parser.FAIL,
|
||||
Output: []string{
|
||||
`multi`,
|
||||
`line`,
|
||||
`stdout`,
|
||||
`single-line stdout`,
|
||||
`example_test.go:13: single-line error`,
|
||||
`example_test.go:14: multi`,
|
||||
` line`,
|
||||
` error`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestFailWithStdoutAndNoTestOutput",
|
||||
Duration: 150 * time.Millisecond,
|
||||
Time: 150,
|
||||
Result: parser.FAIL,
|
||||
Output: []string{
|
||||
`multi`,
|
||||
`line`,
|
||||
`stdout`,
|
||||
`single-line stdout`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestFailWithTestOutput",
|
||||
Duration: 200 * time.Millisecond,
|
||||
Time: 200,
|
||||
Result: parser.FAIL,
|
||||
Output: []string{
|
||||
`example_test.go:26: single-line error`,
|
||||
`example_test.go:27: multi`,
|
||||
` line`,
|
||||
` error`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestFailWithNoTestOutput",
|
||||
Duration: 250 * time.Millisecond,
|
||||
Time: 250,
|
||||
Result: parser.FAIL,
|
||||
Output: []string{},
|
||||
},
|
||||
|
||||
{
|
||||
Name: "TestPassWithStdoutAndTestOutput",
|
||||
Duration: 300 * time.Millisecond,
|
||||
Time: 300,
|
||||
Result: parser.PASS,
|
||||
Output: []string{
|
||||
`multi`,
|
||||
`line`,
|
||||
`stdout`,
|
||||
`single-line stdout`,
|
||||
`example_test.go:39: single-line info`,
|
||||
`example_test.go:40: multi`,
|
||||
` line`,
|
||||
` info`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestPassWithStdoutAndNoTestOutput",
|
||||
Duration: 350 * time.Millisecond,
|
||||
Time: 350,
|
||||
Result: parser.PASS,
|
||||
Output: []string{
|
||||
`multi`,
|
||||
`line`,
|
||||
`stdout`,
|
||||
`single-line stdout`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestPassWithTestOutput",
|
||||
Duration: 400 * time.Millisecond,
|
||||
Time: 400,
|
||||
Result: parser.PASS,
|
||||
Output: []string{
|
||||
`example_test.go:51: single-line info`,
|
||||
`example_test.go:52: multi`,
|
||||
` line`,
|
||||
` info`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestPassWithNoTestOutput",
|
||||
Duration: 500 * time.Millisecond,
|
||||
Time: 500,
|
||||
Result: parser.PASS,
|
||||
Output: []string{},
|
||||
},
|
||||
|
||||
{
|
||||
Name: "TestSubtests",
|
||||
Duration: 2270 * time.Millisecond,
|
||||
Time: 2270,
|
||||
Result: parser.FAIL,
|
||||
},
|
||||
{
|
||||
Name: "TestSubtests/TestFailWithStdoutAndTestOutput",
|
||||
Duration: 100 * time.Millisecond,
|
||||
Time: 100,
|
||||
Result: parser.FAIL,
|
||||
Output: []string{
|
||||
`1 multi`,
|
||||
`line`,
|
||||
`stdout`,
|
||||
`1 single-line stdout`,
|
||||
`example_test.go:65: 1 single-line error`,
|
||||
`example_test.go:66: 1 multi`,
|
||||
` line`,
|
||||
` error`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestSubtests/TestFailWithStdoutAndNoTestOutput",
|
||||
Duration: 150 * time.Millisecond,
|
||||
Time: 150,
|
||||
Result: parser.FAIL,
|
||||
Output: []string{
|
||||
`2 multi`,
|
||||
`line`,
|
||||
`stdout`,
|
||||
`2 single-line stdout`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestSubtests/TestFailWithTestOutput",
|
||||
Duration: 200 * time.Millisecond,
|
||||
Time: 200,
|
||||
Result: parser.FAIL,
|
||||
Output: []string{
|
||||
`example_test.go:78: 3 single-line error`,
|
||||
`example_test.go:79: 3 multi`,
|
||||
` line`,
|
||||
` error`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestSubtests/TestFailWithNoTestOutput",
|
||||
Duration: 250 * time.Millisecond,
|
||||
Time: 250,
|
||||
Result: parser.FAIL,
|
||||
Output: []string{},
|
||||
},
|
||||
|
||||
{
|
||||
Name: "TestSubtests/TestPassWithStdoutAndTestOutput",
|
||||
Duration: 300 * time.Millisecond,
|
||||
Time: 300,
|
||||
Result: parser.PASS,
|
||||
Output: []string{
|
||||
`4 multi`,
|
||||
`line`,
|
||||
`stdout`,
|
||||
`4 single-line stdout`,
|
||||
`example_test.go:91: 4 single-line info`,
|
||||
`example_test.go:92: 4 multi`,
|
||||
` line`,
|
||||
` info`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestSubtests/TestPassWithStdoutAndNoTestOutput",
|
||||
Duration: 350 * time.Millisecond,
|
||||
Time: 350,
|
||||
Result: parser.PASS,
|
||||
Output: []string{
|
||||
`5 multi`,
|
||||
`line`,
|
||||
`stdout`,
|
||||
`5 single-line stdout`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestSubtests/TestPassWithTestOutput",
|
||||
Duration: 400 * time.Millisecond,
|
||||
Time: 400,
|
||||
Result: parser.PASS,
|
||||
Output: []string{
|
||||
`example_test.go:103: 6 single-line info`,
|
||||
`example_test.go:104: 6 multi`,
|
||||
` line`,
|
||||
` info`,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestSubtests/TestPassWithNoTestOutput",
|
||||
Duration: 500 * time.Millisecond,
|
||||
Time: 500,
|
||||
Result: parser.PASS,
|
||||
Output: []string{},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
func TestParser(t *testing.T) {
|
||||
|
Reference in New Issue
Block a user