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

43
testdata/30-report.xml vendored Normal file
View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite tests="17" failures="9" time="4.567" name="package/name1">
<properties>
<property name="go.version" value="1.0"></property>
</properties>
<testcase classname="name1" name="TestFailWithStdoutAndTestOutput" time="0.100">
<failure message="Failed" type="">multi&#xA;line&#xA;stdout&#xA;single-line stdout&#xA;example_test.go:13: single-line error&#xA;example_test.go:14: multi&#xA; line&#xA; error</failure>
</testcase>
<testcase classname="name1" name="TestFailWithStdoutAndNoTestOutput" time="0.150">
<failure message="Failed" type="">multi&#xA;line&#xA;stdout&#xA;single-line stdout</failure>
</testcase>
<testcase classname="name1" name="TestFailWithTestOutput" time="0.200">
<failure message="Failed" type="">example_test.go:26: single-line error&#xA;example_test.go:27: multi&#xA; line&#xA; error</failure>
</testcase>
<testcase classname="name1" name="TestFailWithNoTestOutput" time="0.250">
<failure message="Failed" type=""></failure>
</testcase>
<testcase classname="name1" name="TestPassWithStdoutAndTestOutput" time="0.300"></testcase>
<testcase classname="name1" name="TestPassWithStdoutAndNoTestOutput" time="0.350"></testcase>
<testcase classname="name1" name="TestPassWithTestOutput" time="0.400"></testcase>
<testcase classname="name1" name="TestPassWithNoTestOutput" time="0.500"></testcase>
<testcase classname="name1" name="TestSubtests" time="2.270">
<failure message="Failed" type=""></failure>
</testcase>
<testcase classname="name1" name="TestSubtests/TestFailWithStdoutAndTestOutput" time="0.100">
<failure message="Failed" type="">1 multi&#xA;line&#xA;stdout&#xA;1 single-line stdout&#xA;example_test.go:65: 1 single-line error&#xA;example_test.go:66: 1 multi&#xA; line&#xA; error</failure>
</testcase>
<testcase classname="name1" name="TestSubtests/TestFailWithStdoutAndNoTestOutput" time="0.150">
<failure message="Failed" type="">2 multi&#xA;line&#xA;stdout&#xA;2 single-line stdout</failure>
</testcase>
<testcase classname="name1" name="TestSubtests/TestFailWithTestOutput" time="0.200">
<failure message="Failed" type="">example_test.go:78: 3 single-line error&#xA;example_test.go:79: 3 multi&#xA; line&#xA; error</failure>
</testcase>
<testcase classname="name1" name="TestSubtests/TestFailWithNoTestOutput" time="0.250">
<failure message="Failed" type=""></failure>
</testcase>
<testcase classname="name1" name="TestSubtests/TestPassWithStdoutAndTestOutput" time="0.300"></testcase>
<testcase classname="name1" name="TestSubtests/TestPassWithStdoutAndNoTestOutput" time="0.350"></testcase>
<testcase classname="name1" name="TestSubtests/TestPassWithTestOutput" time="0.400"></testcase>
<testcase classname="name1" name="TestSubtests/TestPassWithNoTestOutput" time="0.500"></testcase>
</testsuite>
</testsuites>

100
testdata/30-stdout.txt vendored Normal file
View File

@ -0,0 +1,100 @@
=== RUN TestFailWithStdoutAndTestOutput
multi
line
stdout
single-line stdout
--- FAIL: TestFailWithStdoutAndTestOutput (0.10s)
example_test.go:13: single-line error
example_test.go:14: multi
line
error
=== RUN TestFailWithStdoutAndNoTestOutput
multi
line
stdout
single-line stdout
--- FAIL: TestFailWithStdoutAndNoTestOutput (0.15s)
=== RUN TestFailWithTestOutput
--- FAIL: TestFailWithTestOutput (0.20s)
example_test.go:26: single-line error
example_test.go:27: multi
line
error
=== RUN TestFailWithNoTestOutput
--- FAIL: TestFailWithNoTestOutput (0.25s)
=== RUN TestPassWithStdoutAndTestOutput
multi
line
stdout
single-line stdout
--- PASS: TestPassWithStdoutAndTestOutput (0.30s)
example_test.go:39: single-line info
example_test.go:40: multi
line
info
=== RUN TestPassWithStdoutAndNoTestOutput
multi
line
stdout
single-line stdout
--- PASS: TestPassWithStdoutAndNoTestOutput (0.35s)
=== RUN TestPassWithTestOutput
--- PASS: TestPassWithTestOutput (0.40s)
example_test.go:51: single-line info
example_test.go:52: multi
line
info
=== RUN TestPassWithNoTestOutput
--- PASS: TestPassWithNoTestOutput (0.50s)
=== RUN TestSubtests
=== RUN TestSubtests/TestFailWithStdoutAndTestOutput
1 multi
line
stdout
1 single-line stdout
=== RUN TestSubtests/TestFailWithStdoutAndNoTestOutput
2 multi
line
stdout
2 single-line stdout
=== RUN TestSubtests/TestFailWithTestOutput
=== RUN TestSubtests/TestFailWithNoTestOutput
=== RUN TestSubtests/TestPassWithStdoutAndTestOutput
4 multi
line
stdout
4 single-line stdout
=== RUN TestSubtests/TestPassWithStdoutAndNoTestOutput
5 multi
line
stdout
5 single-line stdout
=== RUN TestSubtests/TestPassWithTestOutput
=== RUN TestSubtests/TestPassWithNoTestOutput
--- FAIL: TestSubtests (2.27s)
--- FAIL: TestSubtests/TestFailWithStdoutAndTestOutput (0.10s)
example_test.go:65: 1 single-line error
example_test.go:66: 1 multi
line
error
--- FAIL: TestSubtests/TestFailWithStdoutAndNoTestOutput (0.15s)
--- FAIL: TestSubtests/TestFailWithTestOutput (0.20s)
example_test.go:78: 3 single-line error
example_test.go:79: 3 multi
line
error
--- FAIL: TestSubtests/TestFailWithNoTestOutput (0.25s)
--- PASS: TestSubtests/TestPassWithStdoutAndTestOutput (0.30s)
example_test.go:91: 4 single-line info
example_test.go:92: 4 multi
line
info
--- PASS: TestSubtests/TestPassWithStdoutAndNoTestOutput (0.35s)
--- PASS: TestSubtests/TestPassWithTestOutput (0.40s)
example_test.go:103: 6 single-line info
example_test.go:104: 6 multi
line
info
--- PASS: TestSubtests/TestPassWithNoTestOutput (0.50s)
FAIL
FAIL package/name1 4.567s