Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2025-08-21 | 1.8 kB | |
v2.25.0 source code.tar.gz | 2025-08-21 | 660.7 kB | |
v2.25.0 source code.zip | 2025-08-21 | 881.5 kB | |
Totals: 3 Items | 1.5 MB | 0 |
2.25.0
AroundNode
This release introduces a new decorator to support more complex spec setup usecases.
AroundNode
registers a function that runs before each individual node. This is considered a more advanced decorator.
Please read the docs for more information and some examples.
Allowed signatures:
AroundNode(func())
-func
will be called before the node is run.AroundNode(func(ctx context.Context) context.Context)
-func
can wrap the passed in context and return a new one which will be passed on to the node.AroundNode(func(ctx context.Context, body func(ctx context.Context)))
-ctx
is the context for the node andbody
is a function that must be called to run the node. This gives you complete control over what runs before and after the node.
Multiple AroundNode
decorators can be applied to a single node and they will run in the order they are applied.
Unlike setup nodes like BeforeEach
and DeferCleanup
, AroundNode
is guaranteed to run in the same goroutine as the decorated node. This is necessary when working with lower-level libraries that must run on a single thread (you can call runtime.LockOSThread()
in the AroundNode
to ensure that the node runs on a single thread).
Since AroundNode
allows you to modify the context you can also use AroundNode
to implement shared setup that attaches values to the context.
If applied to a container, AroundNode
will run before every node in the container. Including setup nodes like BeforeEach
and DeferCleanup
.
AroundNode
can also be applied to RunSpecs
to run before every node in the suite. This opens up new mechanisms for instrumenting individual nodes across an entire suite.