session := startGinkgo(pathToTest, "build") Eventually(session).Should(gexec.Exit(0)) output := string(session.Out.Contents()) Ω(output).Should(ContainSubstring("Compiling passing_ginkgo_tests")) Ω(output).Should(ContainSubstring("compiled passing_ginkgo_tests.test")) }) It("should build a test binary", func() { _, err := os.Stat(filepath.Join(pathToTest, "passing_ginkgo_tests.test")) Ω(err).ShouldNot(HaveOccurred()) }) It("should be possible to run the test binary directly", func() { cmd := exec.Command("./passing_ginkgo_tests.test") cmd.Dir = pathToTest session, err := gexec.Start(cmd, GinkgoWriter, GinkgoWriter) Ω(err).ShouldNot(HaveOccurred()) Eventually(session).Should(gexec.Exit(0)) Ω(session).Should(gbytes.Say("Running Suite: Passing_ginkgo_tests Suite")) }) It("should be possible to run the test binary via ginkgo", func() { session := startGinkgo(pathToTest, "./passing_ginkgo_tests.test") Eventually(session).Should(gexec.Exit(0)) Ω(session).Should(gbytes.Say("Running Suite: Passing_ginkgo_tests Suite")) }) It("should be possible to run the test binary in parallel", func() { session := startGinkgo(pathToTest, "--nodes=4", "--noColor", "./passing_ginkgo_tests.test") Eventually(session).Should(gexec.Exit(0)) Ω(session).Should(gbytes.Say("Running Suite: Passing_ginkgo_tests Suite"))
func startGinkgo(dir string, args ...string) *gexec.Session { cmd := ginkgoCommand(dir, args...) session, err := gexec.Start(cmd, GinkgoWriter, GinkgoWriter) Ω(err).ShouldNot(HaveOccurred()) return session }