Include test output and stdout in test failures

This commit is contained in:
Jordan Liggitt
2018-12-21 13:28:44 -05:00
parent 385fac0ced
commit 9c3d9dadf6
4 changed files with 372 additions and 0 deletions

View File

@ -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) {