...
1 package integration_test
2
3 import (
4 . "github.com/onsi/ginkgo/v2"
5 . "github.com/onsi/gomega"
6 "github.com/onsi/gomega/gbytes"
7 "github.com/onsi/gomega/gexec"
8
9 "github.com/onsi/ginkgo/v2/internal/interrupt_handler"
10 . "github.com/onsi/ginkgo/v2/internal/test_helpers"
11 "github.com/onsi/ginkgo/v2/reporters"
12 "github.com/onsi/ginkgo/v2/types"
13 )
14
15 var _ = Describe("Abort", func() {
16 var session *gexec.Session
17 BeforeEach(func() {
18 fm.MountFixture("abort")
19 session = startGinkgo(fm.PathTo("abort"), "--no-color", "--json-report=out.json", "--junit-report=out.xml", "--procs=2")
20 Eventually(session).Should(gexec.Exit(1))
21 })
22
23 It("aborts the suite and does not run any subsequent tests", func() {
24 Ω(session).Should(gbytes.Say("this suite needs to end now!"))
25 Ω(string(session.Out.Contents())).ShouldNot(ContainSubstring("SHOULD NOT SEE THIS"))
26 })
27
28 It("reports on the test run correctly", func() {
29 report := fm.LoadJSONReports("abort", "out.json")[0]
30 specs := Reports(report.SpecReports)
31 Ω(specs.Find("runs and passes")).Should(HavePassed())
32 Ω(specs.Find("aborts")).Should(HaveAborted("this suite needs to end now!"))
33 Ω(specs.Find("never runs")).Should(HaveBeenInterrupted(interrupt_handler.InterruptCauseAbortByOtherProcess))
34 Ω(specs.Find("never runs either")).Should(HaveBeenSkipped())
35
36 junitSuites := fm.LoadJUnitReport("abort", "out.xml")
37 cases := junitSuites.TestSuites[0].TestCases
38 var abortCase reporters.JUnitTestCase
39 for _, testCase := range cases {
40 if testCase.Status == types.SpecStateAborted.String() {
41 abortCase = testCase
42 }
43 }
44 Ω(abortCase.Failure.Message).Should(Equal("this suite needs to end now!"))
45 Ω(abortCase.Failure.Type).Should(Equal("aborted"))
46 })
47 })
48
View as plain text