From 4fa6ea42c6fc7b329055f61029fcc3fbf93b39b6 Mon Sep 17 00:00:00 2001 From: Marc Abramowitz Date: Fri, 11 May 2018 13:12:06 -0700 Subject: [PATCH 1/3] Add code for parsing format that ginkgo tests emit Fixes: https://github.com/smartystreets/goconvey/issues/487 --- web/server/parser/packageParser.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/web/server/parser/packageParser.go b/web/server/parser/packageParser.go index 406cc68c..146fcced 100644 --- a/web/server/parser/packageParser.go +++ b/web/server/parser/packageParser.go @@ -50,6 +50,15 @@ func (self *outputParser) separateTestFunctionsAndMetadata() { if self.processNonTestOutput() { break } + // Hack for results from ginkgo tests + lines := strings.Split(self.line, " --- ") + if len(lines) == 2 { + self.line = lines[0] + self.processTestOutput() + self.line = "--- " + lines[1] + self.processTestOutput() + continue + } self.processTestOutput() } } From 375d1a34be565f9f754519980f04a46f7e4e0c29 Mon Sep 17 00:00:00 2001 From: Marc Abramowitz Date: Tue, 13 Aug 2019 15:45:36 -0700 Subject: [PATCH 2/3] Attempt to fix test failure --- web/server/parser/packageParser.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/server/parser/packageParser.go b/web/server/parser/packageParser.go index 146fcced..68a482df 100644 --- a/web/server/parser/packageParser.go +++ b/web/server/parser/packageParser.go @@ -52,7 +52,7 @@ func (self *outputParser) separateTestFunctionsAndMetadata() { } // Hack for results from ginkgo tests lines := strings.Split(self.line, " --- ") - if len(lines) == 2 { + if len(lines) == 2 && len(strings.TrimSpace(lines[0])) > 0 && strings.HasPrefix(lines[1], "PASS") { self.line = lines[0] self.processTestOutput() self.line = "--- " + lines[1] From 69af19f640f3f04d2273a98cea2f428fe5afb0ee Mon Sep 17 00:00:00 2001 From: Marc Abramowitz Date: Tue, 13 Aug 2019 16:57:45 -0700 Subject: [PATCH 3/3] Add tests for Ginkgo parsing code --- web/server/parser/package_parser_test.go | 42 ++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/web/server/parser/package_parser_test.go b/web/server/parser/package_parser_test.go index 2520bdd8..d9661605 100644 --- a/web/server/parser/package_parser_test.go +++ b/web/server/parser/package_parser_test.go @@ -1068,3 +1068,45 @@ var expectedGolang17Subtests = contract.PackageResult{ }, }, } + +const inputGinkgo_Passes = ` +SUCCESS! -- 12 Passed | 0 Failed | 0 Pending | 0 Skipped --- PASS: TestModels (0.01s) +PASS +ok github.com/smartystreets/goconvey/webserver/examples 3.433s +` + +var expectedGinkgo_Passes = contract.PackageResult{ + PackageName: "github.com/smartystreets/goconvey/webserver/examples", + Elapsed: 3.433, + Outcome: contract.Passed, +} + +func TestParsePackage_GinkgoWithSuccessOutput(t *testing.T) { + actual := &contract.PackageResult{PackageName: expectedGinkgo_Passes.PackageName} + ParsePackageResults(actual, inputGinkgo_Passes) + assertEqual(t, expectedGinkgo_Passes, *actual) +} + +const inputGinkgo_Fails = ` +Summarizing 1 Failure: + +[Fail] main.go GetHostname [It] returns an error if systemInfo.hostname == nil +/Users/joeuser/go/src/github.com/smartystreets/goconvey/webserver/examples/main.go:141 + +Ran 33 of 33 Specs in 0.005 seconds +FAIL! -- 32 Passed | 1 Failed | 0 Pending | 0 Skipped --- FAIL: TestRoutes (0.01s) +FAIL +FAIL github.com/smartystreets/goconvey/webserver/examples 0.810s +` + +var expectedGinkgo_Fails = contract.PackageResult{ + PackageName: "github.com/smartystreets/goconvey/webserver/examples", + Elapsed: 0.810, + Outcome: contract.Failed, +} + +func TestParsePackage_GinkgoWithFailureOutput(t *testing.T) { + actual := &contract.PackageResult{PackageName: expectedGinkgo_Fails.PackageName} + ParsePackageResults(actual, inputGinkgo_Fails) + assertEqual(t, expectedGinkgo_Fails, *actual) +}