Ginkgo decorator reference
Terse lookup. Decorators are passed alongside a node's text/closure: It("...", Serial, Label("slow"), func(){...}). Most attach to containers and/or subjects; some are setup-only or interruptible-only. Decorators on a container apply to all nodes within it; the innermost/most-specific wins when they conflict. Full docs: https://onsi.github.io/ginkgo/#decorator-reference.
Execution / ordering
Serial(container, subject) — never runs in parallel; Ginkgo runs serial specs last, on process #1. →ginkgo:parallelism.Ordered(container only) — child specs run in definition order, never reordered; enablesBeforeAll/AfterAll. →ginkgo:ordering-and-flakes.ContinueOnFailure(outermostOrderedcontainer only) — a failing spec doesn't skip the rest of the ordered group.OncePerOrdered(setup nodes) — makes aBeforeEach/AfterEachrun once around anOrderedcontainer (like aBeforeAll) instead of per-spec.SpecPriority(int)(container, subject) — hint to run higher-priority specs earlier; use sparingly, not to impose a total order.
Selection / filtering (→ ginkgo:filtering)
Label("a", "b")(container, subject) — tag specs for--label-filter; labels union down the hierarchy. No&|!,()/"chars.Focus(container, subject) — run only focused specs; don't commit it (CI exits non-zero). Constructors:FDescribe,FContext,FIt,FEntry.Pending(container, subject) — never run (and never compiled into the run set); no closure needed. Constructors:PDescribe,XDescribe,PIt,XIt,PEntry.SemVerConstraint(">= 2.0.0", ...)/ComponentSemVerConstraint("redis", ">= 8.0.0")(container, subject) — run only when--sem-ver-filtersatisfies the constraint; children may narrow, not widen.
Flakiness / repetition (→ ginkgo:ordering-and-flakes)
FlakeAttempts(n)(container, subject) — retry a failing spec up tontimes; a later pass marks it flaky, not failed. CLI--flake-attempts=noverrides.MustPassRepeatedly(n)(container, subject) — the spec must passntimes in a row to count as passed.
Timeouts / interruption (interruptible nodes — those taking ctx SpecContext; → ginkgo:timeouts-and-async)
NodeTimeout(d)(subject, setup) — deadline for a single interruptible node.SpecTimeout(d)(Itonly) — deadline for the whole spec (all its nodes combined).GracePeriod(d)(subject, setup) — how long Ginkgo waits for an interrupted node to return before leaking it; overrides--grace-period.
Progress reporting (→ ginkgo:debugging-failures)
PollProgressAfter(d)(subject, setup) — emit a progress report if the node runs longer thand;0disables.PollProgressInterval(d)(subject, setup) — interval between progress reports once they start.SuppressProgressReporting(subject, setup) — silence progress reports for this node.
Wrapping / advanced
AroundNode(fn)(any node, incl.RunSpecs) — wrap a node's execution; forms a stack on a container applied to every descendant node (unlikeBeforeEach, which runs once per spec). Forms: a barefunc(), a context transformerfunc(context.Context) context.Context, or a full wrapperfunc(ctx, func(context.Context)).
Location / identity (rarely needed by hand)
Offset(n)(any node) — skipnstack frames when computing the reported code location. PreferGinkgoHelper()inside helper funcs instead.CodeLocation(loc)(any node) — supply atypes.CodeLocationexplicitly.
Tables
EntryDescription("format %d")— auto-formatEntrydescriptions from their parameters; usable table-wide or per-entry. →ginkgo:tables-and-dynamic-specs.Entry/Italso acceptLabel,Focus,Pending,FlakeAttempts, etc. — every decorator above works on table entries.
Reporting
ReportEntryVisibility{Always,FailureOrVerbose,Never}— passed toAddReportEntryto control console emission. →ginkgo:reporting.