func (runner *SpecRunner) runSpecs() bool { suiteFailed := false skipRemainingSpecs := false for _, spec := range runner.specs.Specs() { if runner.wasInterrupted() { return suiteFailed } if skipRemainingSpecs { spec.Skip() } runner.reportSpecWillRun(spec.Summary(runner.suiteID)) if !spec.Skipped() && !spec.Pending() { runner.runningSpec = spec spec.Run(runner.writer) runner.runningSpec = nil if spec.Failed() { suiteFailed = true } } else if spec.Pending() && runner.config.FailOnPending { suiteFailed = true } runner.reportSpecDidComplete(spec.Summary(runner.suiteID), spec.Failed()) if spec.Failed() && runner.config.FailFast { skipRemainingSpecs = true } } return !suiteFailed }
} return NewSpecs(specs) } specTexts := func(specs *Specs) []string { texts := []string{} for _, spec := range specs.Specs() { texts = append(texts, spec.ConcatenatedString()) } return texts } willRunTexts := func(specs *Specs) []string { texts := []string{} for _, spec := range specs.Specs() { if !(spec.Skipped() || spec.Pending()) { texts = append(texts, spec.ConcatenatedString()) } } return texts } skippedTexts := func(specs *Specs) []string { texts := []string{} for _, spec := range specs.Specs() { if spec.Skipped() { texts = append(texts, spec.ConcatenatedString()) } } return texts }