github.com/sercand/please@v13.4.0+incompatible/src/test/results_test.go (about) 1 package test 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestGoFailure(t *testing.T) { 11 results, err := parseTestResults("src/test/test_data/go_test_failure.txt") 12 require.NoError(t, err) 13 assert.Equal(t, 4, len(results.TestCases)) 14 assert.Equal(t, 2, results.Passes()) 15 assert.Equal(t, 2, results.Failures()) 16 assert.Equal(t, 0, results.Skips()) 17 } 18 19 func TestGoPassed(t *testing.T) { 20 results, err := parseTestResults("src/test/test_data/go_test_pass.txt") 21 require.NoError(t, err) 22 assert.Equal(t, 4, len(results.TestCases)) 23 assert.Equal(t, 4, results.Passes()) 24 assert.Equal(t, 0, results.Failures()) 25 assert.Equal(t, 0, results.Skips()) 26 } 27 28 func TestGoMultipleFailure(t *testing.T) { 29 results, err := parseTestResults("src/test/test_data/go_multiple_failure.txt") 30 require.NoError(t, err) 31 assert.Equal(t, 2, len(results.TestCases)) 32 assert.Equal(t, 0, results.Passes()) 33 assert.Equal(t, 2, results.Failures()) 34 assert.Equal(t, 0, results.Skips()) 35 } 36 37 func TestGoSkipped(t *testing.T) { 38 results, err := parseTestResults("src/test/test_data/go_test_skip.txt") 39 require.NoError(t, err) 40 assert.Equal(t, 4, len(results.TestCases)) 41 assert.Equal(t, 3, results.Passes()) 42 assert.Equal(t, 0, results.Failures()) 43 assert.Equal(t, 1, results.Skips()) 44 } 45 46 func TestGoSubtests(t *testing.T) { 47 results, err := parseTestResults("src/test/test_data/go_subtests.txt") 48 require.NoError(t, err) 49 assert.Equal(t, 7, len(results.TestCases)) 50 assert.Equal(t, 7, results.Passes()) 51 } 52 53 func TestBuckXML(t *testing.T) { 54 t.Skip("This format matches nothing we generate or care about") 55 results, err := parseTestResults("src/test/test_data/junit.xml") 56 require.NoError(t, err) 57 assert.Equal(t, 4, len(results.TestCases)) 58 assert.Equal(t, 4, results.Passes()) 59 assert.Equal(t, 0, results.Failures()) 60 assert.Equal(t, 0, results.Skips()) 61 } 62 63 func TestJUnitXML(t *testing.T) { 64 results, err := parseTestResults("src/test/test_data/xmlrunner-junit.xml") 65 require.NoError(t, err) 66 assert.Equal(t, 2, len(results.TestCases)) 67 assert.Equal(t, 1, results.Passes()) 68 assert.Equal(t, 1, results.Failures()) 69 assert.Equal(t, 0, results.Skips()) 70 } 71 72 func TestKarmaXML(t *testing.T) { 73 results, err := parseTestResults("src/test/test_data/karma-junit.xml") 74 require.NoError(t, err) 75 assert.Equal(t, 10, len(results.TestCases)) 76 assert.Equal(t, 10, results.Passes()) 77 assert.Equal(t, 0, results.Failures()) 78 assert.Equal(t, 0, results.Skips()) 79 } 80 81 func TestUnitTestXML(t *testing.T) { 82 results, err := parseTestResults("src/test/test_data/unittest.xml") 83 require.NoError(t, err) 84 assert.Equal(t, 2, len(results.TestCases)) 85 assert.Equal(t, 0, results.Passes()) 86 assert.Equal(t, 2, results.Failures()) 87 assert.Equal(t, 0, results.Skips()) 88 } 89 90 func TestSkip(t *testing.T) { 91 results, err := parseTestResults("src/test/test_data/xmlrunner-skipped.xml") 92 require.NoError(t, err) 93 assert.Equal(t, 2, len(results.TestCases)) 94 assert.Equal(t, 1, results.Passes()) 95 assert.Equal(t, 1, results.Skips()) 96 } 97 98 func TestGoSuite(t *testing.T) { 99 results, err := parseTestResults("src/test/test_data/go_test_suite.txt") 100 require.NoError(t, err) 101 assert.Equal(t, 7, len(results.TestCases)) 102 assert.Equal(t, 5, results.Passes()) 103 assert.Equal(t, 1, results.Failures()) 104 assert.Equal(t, 1, results.Skips()) 105 } 106 107 func TestGoIgnoreUnknownOutput(t *testing.T) { 108 results, err := parseTestResults("src/test/test_data/go_test_ignore_logs.txt") 109 require.NoError(t, err) 110 assert.Equal(t, 4, len(results.TestCases)) 111 assert.Equal(t, 4, results.Passes()) 112 assert.Equal(t, 0, results.Failures()) 113 assert.Equal(t, 0, results.Skips()) 114 } 115 116 func TestGoFailIfUnknownTestPasses(t *testing.T) { 117 _, err := parseTestResults("src/test/test_data/go_test_unknown_test.txt") 118 assert.Error(t, err) 119 } 120 121 func TestParseGoFileWithNoTests(t *testing.T) { 122 _, err := parseTestResults("src/test/test_data/go_empty_test.txt") 123 assert.NoError(t, err) 124 } 125 126 func TestParseGoFileWithLogging(t *testing.T) { 127 results, err := parseTestResults("src/test/test_data/go_test_logging.txt") 128 assert.NoError(t, err) 129 assert.Equal(t, 3, len(results.TestCases)) 130 assert.Equal(t, 3, results.Passes()) 131 assert.Equal(t, 0, results.Failures()) 132 }