Documentation ¶
Index ¶
- Constants
- func ApplyNestedFocusPolicyToTree(tree *TreeNode)
- func MakeIncrementingIndexCounter() func() (int, error)
- func OrderSpecs(specs Specs, suiteConfig types.SuiteConfig) (GroupedSpecIndices, GroupedSpecIndices)
- func PartitionDecorations(args ...interface{}) ([]interface{}, []interface{})
- func UniqueNodeID() uint
- type Done
- type Failer
- func (f *Failer) AbortSuite(message string, location types.CodeLocation)
- func (f *Failer) Drain() (types.SpecState, types.Failure)
- func (f *Failer) Fail(message string, location types.CodeLocation)
- func (f *Failer) GetFailure() types.Failure
- func (f *Failer) GetState() types.SpecState
- func (f *Failer) Panic(location types.CodeLocation, forwardedPanic interface{})
- func (f *Failer) Skip(message string, location types.CodeLocation)
- type FlakeAttempts
- type GroupedSpecIndices
- type Labels
- type Node
- func NewCleanupNode(fail func(string, types.CodeLocation), args ...interface{}) (Node, []error)
- func NewNode(deprecationTracker *types.DeprecationTracker, nodeType types.NodeType, ...) (Node, []error)
- func NewReportAfterEachNode(body func(types.SpecReport), codeLocation types.CodeLocation) (Node, []error)
- func NewReportAfterSuiteNode(text string, body func(types.Report), codeLocation types.CodeLocation) (Node, []error)
- func NewReportBeforeEachNode(body func(types.SpecReport), codeLocation types.CodeLocation) (Node, []error)
- func NewSynchronizedAfterSuiteNode(allProcsBody func(), proc1Body func(), codeLocation types.CodeLocation) (Node, []error)
- func NewSynchronizedBeforeSuiteNode(proc1Body func() []byte, allProcsBody func([]byte), ...) (Node, []error)
- type Nodes
- func (n Nodes) BestTextFor(node Node) string
- func (n Nodes) CodeLocations() []types.CodeLocation
- func (n Nodes) ContainsNodeID(id uint) bool
- func (n Nodes) CopyAppend(nodes ...Node) Nodes
- func (n Nodes) Filter(filter func(Node) bool) Nodes
- func (n Nodes) FirstNodeMarkedOrdered() Node
- func (n Nodes) FirstNodeWithType(nodeTypes types.NodeType) Node
- func (n Nodes) FirstSatisfying(filter func(Node) bool) Node
- func (n Nodes) FirstWithNestingLevel(level int) Node
- func (n Nodes) HasNodeMarkedFocus() bool
- func (n Nodes) HasNodeMarkedPending() bool
- func (n Nodes) HasNodeMarkedSerial() bool
- func (n Nodes) Labels() [][]string
- func (n Nodes) Reverse() Nodes
- func (n Nodes) SortedByAscendingNestingLevel() Nodes
- func (n Nodes) SortedByDescendingNestingLevel() Nodes
- func (n Nodes) SplitAround(pivot Node) (Nodes, Nodes)
- func (n Nodes) Texts() []string
- func (n Nodes) UnionOfLabels() []string
- func (n Nodes) WithType(nodeTypes types.NodeType) Nodes
- func (n Nodes) WithinNestingLevel(deepestNestingLevel int) Nodes
- func (n Nodes) WithoutNode(nodeToExclude Node) Nodes
- func (n Nodes) WithoutType(nodeTypes types.NodeType) Nodes
- type NoopOutputInterceptor
- func (interceptor NoopOutputInterceptor) PauseIntercepting()
- func (interceptor NoopOutputInterceptor) ResumeIntercepting()
- func (interceptor NoopOutputInterceptor) Shutdown()
- func (interceptor NoopOutputInterceptor) StartInterceptingOutput()
- func (interceptor NoopOutputInterceptor) StartInterceptingOutputAndForwardTo(io.Writer)
- func (interceptor NoopOutputInterceptor) StopInterceptingAndReturnOutput() string
- type Offset
- type OutputInterceptor
- type Phase
- type ReportEntry
- type Spec
- type SpecIndices
- type Specs
- type Suite
- func (suite *Suite) AddReportEntry(entry ReportEntry) error
- func (suite *Suite) BuildTree() error
- func (suite *Suite) CurrentSpecReport() types.SpecReport
- func (suite *Suite) InRunPhase() bool
- func (suite *Suite) PushNode(node Node) error
- func (suite *Suite) Run(description string, suiteLabels Labels, suitePath string, failer *Failer, ...) (bool, bool)
- type TreeNode
- type TreeNodes
- type Writer
- func (w *Writer) Bytes() []byte
- func (w *Writer) ClearTeeWriters()
- func (w *Writer) Print(a ...interface{})
- func (w *Writer) Printf(format string, a ...interface{})
- func (w *Writer) Println(a ...interface{})
- func (w *Writer) SetMode(mode WriterMode)
- func (w *Writer) TeeTo(writer io.Writer)
- func (w *Writer) Truncate()
- func (w *Writer) Write(b []byte) (n int, err error)
- type WriterInterface
- type WriterMode
Constants ¶
const BAILOUT_MESSAGE = `` /* 1486-byte string literal not displayed */
const BAILOUT_TIME = 1 * time.Second
const Focus = focusType(true)
const OncePerOrdered = honorsOrderedType(true)
const Ordered = orderedType(true)
const Pending = pendingType(true)
const Serial = serialType(true)
Variables ¶
This section is empty.
Functions ¶
func ApplyNestedFocusPolicyToTree ¶
func ApplyNestedFocusPolicyToTree(tree *TreeNode)
If a container marked as focus has a descendant that is also marked as focus, Ginkgo's policy is to unmark the container's focus. This gives developers a more intuitive experience when debugging specs. It is common to focus a container to just run a subset of specs, then identify the specific specs within the container to focus - this policy allows the developer to simply focus those specific specs and not need to go back and turn the focus off of the container:
As a common example, consider:
FDescribe("something to debug", function() { It("works", function() {...}) It("works", function() {...}) FIt("doesn't work", function() {...}) It("works", function() {...}) })
here the developer's intent is to focus in on the `"doesn't work"` spec and not to run the adjacent specs in the focused `"something to debug"` container. The nested policy applied by this function enables this behavior.
func OrderSpecs ¶
func OrderSpecs(specs Specs, suiteConfig types.SuiteConfig) (GroupedSpecIndices, GroupedSpecIndices)
func PartitionDecorations ¶
func PartitionDecorations(args ...interface{}) ([]interface{}, []interface{})
func UniqueNodeID ¶
func UniqueNodeID() uint
Types ¶
type Failer ¶
type Failer struct {
// contains filtered or unexported fields
}
func (*Failer) AbortSuite ¶
func (f *Failer) AbortSuite(message string, location types.CodeLocation)
func (*Failer) GetFailure ¶
func (*Failer) Panic ¶
func (f *Failer) Panic(location types.CodeLocation, forwardedPanic interface{})
type FlakeAttempts ¶
type FlakeAttempts uint
type GroupedSpecIndices ¶
type GroupedSpecIndices []SpecIndices
type Node ¶
type Node struct { ID uint NodeType types.NodeType Text string Body func() CodeLocation types.CodeLocation NestingLevel int SynchronizedBeforeSuiteProc1Body func() []byte SynchronizedBeforeSuiteAllProcsBody func([]byte) SynchronizedAfterSuiteAllProcsBody func() SynchronizedAfterSuiteProc1Body func() ReportEachBody func(types.SpecReport) ReportAfterSuiteBody func(types.Report) MarkedFocus bool MarkedPending bool MarkedSerial bool MarkedOrdered bool MarkedOncePerOrdered bool FlakeAttempts int Labels Labels NodeIDWhereCleanupWasGenerated uint }
func NewCleanupNode ¶
func NewCleanupNode(fail func(string, types.CodeLocation), args ...interface{}) (Node, []error)
func NewReportAfterEachNode ¶
func NewReportAfterEachNode(body func(types.SpecReport), codeLocation types.CodeLocation) (Node, []error)
func NewReportAfterSuiteNode ¶
func NewReportBeforeEachNode ¶
func NewReportBeforeEachNode(body func(types.SpecReport), codeLocation types.CodeLocation) (Node, []error)
func NewSynchronizedAfterSuiteNode ¶
func NewSynchronizedAfterSuiteNode(allProcsBody func(), proc1Body func(), codeLocation types.CodeLocation) (Node, []error)
type Nodes ¶
type Nodes []Node
Nodes
func (Nodes) BestTextFor ¶
func (Nodes) CodeLocations ¶
func (n Nodes) CodeLocations() []types.CodeLocation
func (Nodes) ContainsNodeID ¶
func (Nodes) CopyAppend ¶
func (Nodes) FirstNodeMarkedOrdered ¶
func (Nodes) FirstWithNestingLevel ¶
func (Nodes) HasNodeMarkedFocus ¶
func (Nodes) HasNodeMarkedPending ¶
func (Nodes) HasNodeMarkedSerial ¶
func (Nodes) SortedByAscendingNestingLevel ¶
func (Nodes) SortedByDescendingNestingLevel ¶
func (Nodes) UnionOfLabels ¶
func (Nodes) WithinNestingLevel ¶
func (Nodes) WithoutNode ¶
type NoopOutputInterceptor ¶
type NoopOutputInterceptor struct{}
func (NoopOutputInterceptor) PauseIntercepting ¶
func (interceptor NoopOutputInterceptor) PauseIntercepting()
func (NoopOutputInterceptor) ResumeIntercepting ¶
func (interceptor NoopOutputInterceptor) ResumeIntercepting()
func (NoopOutputInterceptor) Shutdown ¶
func (interceptor NoopOutputInterceptor) Shutdown()
func (NoopOutputInterceptor) StartInterceptingOutput ¶
func (interceptor NoopOutputInterceptor) StartInterceptingOutput()
func (NoopOutputInterceptor) StartInterceptingOutputAndForwardTo ¶
func (interceptor NoopOutputInterceptor) StartInterceptingOutputAndForwardTo(io.Writer)
func (NoopOutputInterceptor) StopInterceptingAndReturnOutput ¶
func (interceptor NoopOutputInterceptor) StopInterceptingAndReturnOutput() string
type OutputInterceptor ¶
type OutputInterceptor interface { StartInterceptingOutput() StartInterceptingOutputAndForwardTo(io.Writer) StopInterceptingAndReturnOutput() string PauseIntercepting() ResumeIntercepting() Shutdown() }
The OutputInterceptor is used by to intercept and capture all stdin and stderr output during a test run.
func NewOSGlobalReassigningOutputInterceptor ¶
func NewOSGlobalReassigningOutputInterceptor() OutputInterceptor
This is used on windows builds but included here so it can be explicitly tested on unix systems too
func NewOutputInterceptor ¶
func NewOutputInterceptor() OutputInterceptor
type ReportEntry ¶
type ReportEntry = types.ReportEntry
func NewReportEntry ¶
func NewReportEntry(name string, cl types.CodeLocation, args ...interface{}) (ReportEntry, error)
type Spec ¶
func (Spec) FlakeAttempts ¶
type SpecIndices ¶
type SpecIndices []int
type Specs ¶
type Specs []Spec
func ApplyFocusToSpecs ¶
func ApplyFocusToSpecs(specs Specs, description string, suiteLabels Labels, suiteConfig types.SuiteConfig) (Specs, bool)
Ginkgo supports focussing specs using `FIt`, `FDescribe`, etc. - this is called "programmatic focus" It also supports focussing specs using regular expressions on the command line (`-focus=`, `-skip=`) that match against spec text and file filters (`-focus-files=`, `-skip-files=`) that match against code locations for nodes in specs.
If any of the CLI flags are provided they take precedence. The file filters run first followed by the regex filters.
This function sets the `Skip` property on specs by applying Ginkgo's focus policy: - If there are no CLI arguments and no programmatic focus, do nothing. - If there are no CLI arguments but a spec somewhere has programmatic focus, skip any specs that have no programmatic focus. - If there are CLI arguments parse them and skip any specs that either don't match the focus filters or do match the skip filters.
*Note:* specs with pending nodes are Skipped when created by NewSpec.
func (Specs) AtIndices ¶
func (s Specs) AtIndices(indices SpecIndices) Specs
func (Specs) CountWithoutSkip ¶
func (Specs) HasAnySpecsMarkedPending ¶
type Suite ¶
type Suite struct {
// contains filtered or unexported fields
}
func (*Suite) AddReportEntry ¶
func (suite *Suite) AddReportEntry(entry ReportEntry) error
func (*Suite) CurrentSpecReport ¶
func (suite *Suite) CurrentSpecReport() types.SpecReport
Spec Running methods - used during PhaseRun
func (*Suite) InRunPhase ¶
func (*Suite) Run ¶
func (suite *Suite) Run(description string, suiteLabels Labels, suitePath string, failer *Failer, reporter reporters.Reporter, writer WriterInterface, outputInterceptor OutputInterceptor, interruptHandler interrupt_handler.InterruptHandlerInterface, client parallel_support.Client, suiteConfig types.SuiteConfig) (bool, bool)
type Writer ¶
type Writer struct {
// contains filtered or unexported fields
}
Writer implements WriterInterface and GinkgoWriterInterface
func (*Writer) ClearTeeWriters ¶
func (w *Writer) ClearTeeWriters()
func (*Writer) SetMode ¶
func (w *Writer) SetMode(mode WriterMode)
type WriterInterface ¶
type WriterMode ¶
type WriterMode uint
const ( WriterModeStreamAndBuffer WriterMode = iota WriterModeBufferOnly )