"github.com/pivotal-cf/email-resource/Godeps/_workspace/src/github.com/onsi/gomega/gbytes" "github.com/pivotal-cf/email-resource/Godeps/_workspace/src/github.com/onsi/gomega/gexec" ) var _ = Describe("Running Specs", func() { var pathToTest string Context("when pointed at the current directory", func() { BeforeEach(func() { pathToTest = tmpPath("ginkgo") copyIn("passing_ginkgo_tests", pathToTest) }) It("should run the tests in the working directory", func() { session := startGinkgo(pathToTest, "--noColor") Eventually(session).Should(gexec.Exit(0)) output := string(session.Out.Contents()) Ω(output).Should(ContainSubstring("Running Suite: Passing_ginkgo_tests Suite")) Ω(output).Should(ContainSubstring("••••")) Ω(output).Should(ContainSubstring("SUCCESS! -- 4 Passed")) Ω(output).Should(ContainSubstring("Test Suite Passed")) }) }) Context("when passed an explicit package to run", func() { BeforeEach(func() { pathToTest = tmpPath("ginkgo") copyIn("passing_ginkgo_tests", pathToTest) })
var pathToTest string BeforeEach(func() { pathToTest = tmpPath("hanging") copyIn("hanging_suite", pathToTest) }) Context("when interrupting a suite", func() { var session *gexec.Session BeforeEach(func() { //we need to signal the actual process, so we must compile the test first var err error cmd := exec.Command("go", "test", "-c") cmd.Dir = pathToTest session, err = gexec.Start(cmd, GinkgoWriter, GinkgoWriter) Ω(err).ShouldNot(HaveOccurred()) Eventually(session).Should(gexec.Exit(0)) //then run the compiled test directly cmd = exec.Command("./hanging.test", "--test.v=true", "--ginkgo.noColor") cmd.Dir = pathToTest session, err = gexec.Start(cmd, GinkgoWriter, GinkgoWriter) Ω(err).ShouldNot(HaveOccurred()) Eventually(session).Should(gbytes.Say("Sleeping...")) session.Interrupt() Eventually(session, 1000).Should(gexec.Exit(1)) }) It("should emit the contents of the GinkgoWriter", func() { Ω(session).Should(gbytes.Say("Just beginning")) Ω(session).Should(gbytes.Say("Almost there..."))
. "github.com/pivotal-cf/email-resource/Godeps/_workspace/src/github.com/onsi/ginkgo" . "github.com/pivotal-cf/email-resource/Godeps/_workspace/src/github.com/onsi/gomega" "github.com/pivotal-cf/email-resource/Godeps/_workspace/src/github.com/onsi/gomega/gexec" ) var _ = Describe("Skipping Specs", func() { var pathToTest string BeforeEach(func() { pathToTest = tmpPath("skipping") copyIn("skip_fixture", pathToTest) }) It("should skip in all the possible ways", func() { session := startGinkgo(pathToTest, "--noColor") Eventually(session).Should(gexec.Exit(0)) output := string(session.Out.Contents()) Ω(output).ShouldNot(ContainSubstring("NEVER SEE THIS")) Ω(output).Should(ContainSubstring("a top level skip on line 9")) Ω(output).Should(ContainSubstring("skip_fixture_test.go:9")) Ω(output).Should(ContainSubstring("an async top level skip on line 14")) Ω(output).Should(ContainSubstring("skip_fixture_test.go:14")) Ω(output).Should(ContainSubstring("a top level goroutine skip on line 21")) Ω(output).Should(ContainSubstring("skip_fixture_test.go:21")) Ω(output).Should(ContainSubstring("a sync SKIP")) Ω(output).Should(ContainSubstring("an async SKIP")) Ω(output).Should(ContainSubstring("a goroutine SKIP")) Ω(output).Should(ContainSubstring("a measure SKIP"))
"os" "os/exec" . "github.com/pivotal-cf/email-resource/Godeps/_workspace/src/github.com/onsi/ginkgo" . "github.com/pivotal-cf/email-resource/Godeps/_workspace/src/github.com/onsi/gomega" "github.com/pivotal-cf/email-resource/Godeps/_workspace/src/github.com/onsi/gomega/gexec" ) var _ = Describe("Coverage Specs", func() { AfterEach(func() { os.RemoveAll("./_fixtures/coverage_fixture/coverage_fixture.coverprofile") }) It("runs coverage analysis in series and in parallel", func() { session := startGinkgo("./_fixtures/coverage_fixture", "-cover") Eventually(session).Should(gexec.Exit(0)) output := session.Out.Contents() Ω(output).Should(ContainSubstring("coverage: 80.0% of statements")) serialCoverProfileOutput, err := exec.Command("go", "tool", "cover", "-func=./_fixtures/coverage_fixture/coverage_fixture.coverprofile").CombinedOutput() Ω(err).ShouldNot(HaveOccurred()) os.RemoveAll("./_fixtures/coverage_fixture/coverage_fixture.coverprofile") Eventually(startGinkgo("./_fixtures/coverage_fixture", "-cover", "-nodes=4")).Should(gexec.Exit(0)) parallelCoverProfileOutput, err := exec.Command("go", "tool", "cover", "-func=./_fixtures/coverage_fixture/coverage_fixture.coverprofile").CombinedOutput() Ω(err).ShouldNot(HaveOccurred()) Ω(parallelCoverProfileOutput).Should(Equal(serialCoverProfileOutput)) })