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  }