arnaucube
arnaucube/mirror-to-giteaPublic Self-hosted repository
mirror-to-gitea/vendor/github.com/onsi/ginkgo/reporters/default_reporter.go
vendor/github.com/onsi/ginkgo/reporters/default_reporter.goRaw
 1/*
 2Ginkgo's Default Reporter
 3
 4A number of command line flags are available to tweak Ginkgo's default output.
 5
 6These are documented [here](http://onsi.github.io/ginkgo/#running_tests)
 7*/
 8package reporters
 9
10import (
11	"github.com/onsi/ginkgo/config"
12	"github.com/onsi/ginkgo/reporters/stenographer"
13	"github.com/onsi/ginkgo/types"
14)
15
16type DefaultReporter struct {
17	config        config.DefaultReporterConfigType
18	stenographer  stenographer.Stenographer
19	specSummaries []*types.SpecSummary
20}
21
22func NewDefaultReporter(config config.DefaultReporterConfigType, stenographer stenographer.Stenographer) *DefaultReporter {
23	return &DefaultReporter{
24		config:       config,
25		stenographer: stenographer,
26	}
27}
28
29func (reporter *DefaultReporter) SpecSuiteWillBegin(config config.GinkgoConfigType, summary *types.SuiteSummary) {
30	reporter.stenographer.AnnounceSuite(summary.SuiteDescription, config.RandomSeed, config.RandomizeAllSpecs, reporter.config.Succinct)
31	if config.ParallelTotal > 1 {
32		reporter.stenographer.AnnounceParallelRun(config.ParallelNode, config.ParallelTotal, reporter.config.Succinct)
33	} else {
34		reporter.stenographer.AnnounceNumberOfSpecs(summary.NumberOfSpecsThatWillBeRun, summary.NumberOfTotalSpecs, reporter.config.Succinct)
35	}
36}
37
38func (reporter *DefaultReporter) BeforeSuiteDidRun(setupSummary *types.SetupSummary) {
39	if setupSummary.State != types.SpecStatePassed {
40		reporter.stenographer.AnnounceBeforeSuiteFailure(setupSummary, reporter.config.Succinct, reporter.config.FullTrace)
41	}
42}
43
44func (reporter *DefaultReporter) AfterSuiteDidRun(setupSummary *types.SetupSummary) {
45	if setupSummary.State != types.SpecStatePassed {
46		reporter.stenographer.AnnounceAfterSuiteFailure(setupSummary, reporter.config.Succinct, reporter.config.FullTrace)
47	}
48}
49
50func (reporter *DefaultReporter) SpecWillRun(specSummary *types.SpecSummary) {
51	if reporter.config.Verbose && !reporter.config.Succinct && specSummary.State != types.SpecStatePending && specSummary.State != types.SpecStateSkipped {
52		reporter.stenographer.AnnounceSpecWillRun(specSummary)
53	}
54}
55
56func (reporter *DefaultReporter) SpecDidComplete(specSummary *types.SpecSummary) {
57	switch specSummary.State {
58	case types.SpecStatePassed:
59		if specSummary.IsMeasurement {
60			reporter.stenographer.AnnounceSuccessfulMeasurement(specSummary, reporter.config.Succinct)
61		} else if specSummary.RunTime.Seconds() >= reporter.config.SlowSpecThreshold {
62			reporter.stenographer.AnnounceSuccessfulSlowSpec(specSummary, reporter.config.Succinct)
63		} else {
64			reporter.stenographer.AnnounceSuccessfulSpec(specSummary)
65			if reporter.config.ReportPassed {
66				reporter.stenographer.AnnounceCapturedOutput(specSummary.CapturedOutput)
67			}
68		}
69	case types.SpecStatePending:
70		reporter.stenographer.AnnouncePendingSpec(specSummary, reporter.config.NoisyPendings && !reporter.config.Succinct)
71	case types.SpecStateSkipped:
72		reporter.stenographer.AnnounceSkippedSpec(specSummary, reporter.config.Succinct || !reporter.config.NoisySkippings, reporter.config.FullTrace)
73	case types.SpecStateTimedOut:
74		reporter.stenographer.AnnounceSpecTimedOut(specSummary, reporter.config.Succinct, reporter.config.FullTrace)
75	case types.SpecStatePanicked:
76		reporter.stenographer.AnnounceSpecPanicked(specSummary, reporter.config.Succinct, reporter.config.FullTrace)
77	case types.SpecStateFailed:
78		reporter.stenographer.AnnounceSpecFailed(specSummary, reporter.config.Succinct, reporter.config.FullTrace)
79	}
80
81	reporter.specSummaries = append(reporter.specSummaries, specSummary)
82}
83
84func (reporter *DefaultReporter) SpecSuiteDidEnd(summary *types.SuiteSummary) {
85	reporter.stenographer.SummarizeFailures(reporter.specSummaries)
86	reporter.stenographer.AnnounceSpecRunCompletion(summary, reporter.config.Succinct)
87}