}) JustBeforeEach(func() { process = ifrit.Background(restarter) }) AfterEach(func() { process.Signal(os.Kill) testRunner.EnsureExit() Eventually(process.Wait()).Should(Receive()) }) Describe("Process Behavior", func() { It("waits for the internal runner to be ready", func() { Consistently(process.Ready()).ShouldNot(BeClosed()) testRunner.TriggerReady() Eventually(process.Ready()).Should(BeClosed()) }) }) Describe("Load", func() { Context("when load returns a runner", func() { var loadedRunner *fake_runner.TestRunner var loadedRunners chan *fake_runner.TestRunner BeforeEach(func() { loadedRunners = make(chan *fake_runner.TestRunner, 1) restarter.Load = func(runner ifrit.Runner, err error) ifrit.Runner { select {