diff --git a/cmd/main_e2e_test.go b/cmd/main_e2e_test.go index f09b701a..16d3f0c6 100644 --- a/cmd/main_e2e_test.go +++ b/cmd/main_e2e_test.go @@ -248,3 +248,33 @@ func TestE2E_MaxFails_EndTestRun(t *testing.T) { ) golden.Assert(t, out, "e2e/expected/"+t.Name()) } + +func TestE2E_IgnoresWarnings(t *testing.T) { + if testing.Short() { + t.Skip("too slow for short run") + } + + flags, opts := setupFlags("gotestsum") + args := []string{ + "--rerun-fails=1", + "--packages=./testdata/e2e/ignore_warnings/", + "--format=testname", + "--", "-tags=testdata", "-cover", "-coverpkg=github.com/pkg/errors", + } + assert.NilError(t, flags.Parse(args)) + opts.args = flags.Args() + + bufStdout := new(bytes.Buffer) + opts.stdout = bufStdout + bufStderr := new(bytes.Buffer) + opts.stderr = bufStderr + + err := run(opts) + assert.Error(t, err, "exit status 1") + out := text.ProcessLines(t, bufStdout, + text.OpRemoveSummaryLineElapsedTime, + text.OpRemoveTestElapsedTime, + filepath.ToSlash, // for windows + ) + golden.Assert(t, out, "e2e/expected/"+t.Name()) +} diff --git a/cmd/testdata/e2e/expected/TestE2E_IgnoresWarnings b/cmd/testdata/e2e/expected/TestE2E_IgnoresWarnings new file mode 100644 index 00000000..1a9a5b6e --- /dev/null +++ b/cmd/testdata/e2e/expected/TestE2E_IgnoresWarnings @@ -0,0 +1,20 @@ +=== RUN TestIgnoreWarnings +--- FAIL: TestIgnoreWarnings +FAIL cmd/testdata/e2e/ignore_warnings.TestIgnoreWarnings +coverage: [no statements] +FAIL cmd/testdata/e2e/ignore_warnings + +DONE 1 tests, 1 failure + +=== RUN TestIgnoreWarnings +--- FAIL: TestIgnoreWarnings +FAIL cmd/testdata/e2e/ignore_warnings.TestIgnoreWarnings (re-run 1) +coverage: [no statements] +FAIL cmd/testdata/e2e/ignore_warnings + +=== Failed +=== FAIL: cmd/testdata/e2e/ignore_warnings TestIgnoreWarnings + +=== FAIL: cmd/testdata/e2e/ignore_warnings TestIgnoreWarnings (re-run 1) + +DONE 2 runs, 2 tests, 2 failures diff --git a/cmd/testdata/e2e/ignore_warnings/ignore_warnings.go b/cmd/testdata/e2e/ignore_warnings/ignore_warnings.go new file mode 100644 index 00000000..94f79c89 --- /dev/null +++ b/cmd/testdata/e2e/ignore_warnings/ignore_warnings.go @@ -0,0 +1 @@ +package ignore_warnings diff --git a/cmd/testdata/e2e/ignore_warnings/ignore_warnings_test.go b/cmd/testdata/e2e/ignore_warnings/ignore_warnings_test.go new file mode 100644 index 00000000..b2028adb --- /dev/null +++ b/cmd/testdata/e2e/ignore_warnings/ignore_warnings_test.go @@ -0,0 +1,7 @@ +package ignore_warnings + +import "testing" + +func TestIgnoreWarnings(t *testing.T) { + t.Fail() +} diff --git a/testjson/execution.go b/testjson/execution.go index 5d894d5f..d9103d43 100644 --- a/testjson/execution.go +++ b/testjson/execution.go @@ -697,6 +697,9 @@ func readStderr(config ScanConfig, execution *Execution) error { if isGoModuleOutput(line) { continue } + if strings.HasPrefix(line, "warning:") { + continue + } execution.addError(line) } if err := scanner.Err(); err != nil {