BeforeEach(func() { logger = lagertest.NewTestLogger("test") interval = 10 * time.Second fakeClock = fakeclock.NewFakeClock(time.Unix(123, 456)) fakeExecutorClient = new(efakes.FakeClient) fakeMetricSender = msfake.NewFakeMetricSender() dmetrics.Initialize(fakeMetricSender, nil) metricsResults = make(chan map[string]executor.Metrics, 10) fakeExecutorClient.GetAllMetricsStub = func(tags executor.Tags) (map[string]executor.Metrics, error) { result, ok := <-metricsResults if !ok || result == nil { return nil, errors.New("closed") } return result, nil } process = ifrit.Invoke(containermetrics.NewStatsReporter(logger, interval, fakeClock, fakeExecutorClient)) }) AfterEach(func() { close(metricsResults) ginkgomon.Interrupt(process) }) Context("when the interval elapses", func() { BeforeEach(func() { sendResults()