Skip to content

Releases: onsi/ginkgo

v2.25.3

04 Sep 19:31
Compare
Choose a tag to compare

2.25.3

Fixes

  • emit --github-output group only for progress report itself [f01aed1]

v2.25.2

28 Aug 15:01
Compare
Choose a tag to compare

2.25.2

Fixes

Add github output group for progress report content

Maintenance

Bump Gomega

v2.25.1

22 Aug 03:49
Compare
Choose a tag to compare

2.25.1

Fixes

  • fix(types): ignore nameless nodes on FullText() [10866d3]
  • chore: fix some CodeQL warnings [2e42cff]

v2.25.0

21 Aug 03:43
Compare
Choose a tag to compare

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 and body 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.

v2.24.0

18 Aug 15:40
Compare
Choose a tag to compare

2.24.0

Features

Specs can now be decorated with (e.g.) SemVerConstraint("2.1.0") and ginkgo --sem-ver-filter="2.1.1" will only run constrained specs that match the requested version. Learn more in the docs here! Thanks to @Icarus9913 for the PR.

Fixes

Maintenance

Numerous dependency bumps and documentation fixes

v2.23.4

06 Apr 20:34
Compare
Choose a tag to compare

2.23.4

Prior to this release Ginkgo would compute the incorrect number of available CPUs when running with -p in a linux container. Thanks to @emirot for the fix!

Features

  • Add automaxprocs for using CPUQuota [2b9c428]

Fixes

  • clarify gotchas about -vet flag [1f59d07]

Maintenance

v2.23.3

21 Mar 20:59
Compare
Choose a tag to compare

2.23.3

Fixes

  • allow - as a standalone argument [cfcc1a5]
  • Bug Fix: Add GinkoTBWrapper.Chdir() and GinkoTBWrapper.Context() [feaf292]
  • ignore exit code for symbol test on linux [88e2282]

v2.23.2

20 Mar 16:12
Compare
Choose a tag to compare

2.23.2

πŸŽ‰πŸŽ‰πŸŽ‰

At long last, some long-standing performance gaps between ginkgo and go test have been resolved!

Ginkgo operates by running go test -c to generate test binaries, and then running those binaries. It turns out that the compilation step of go test -c is slower than go test's compilation step because go test strips out debug symbols (ldflags=-w) whereas go test -c does not.

Ginkgo now passes the appropriate ldflags to go test -c when running specs to strip out symbols. This is only done when it is safe to do so and symbols are preferred when profiling is enabled and when ginkgo build is called explicitly.

This, coupled, with the instructions for disabling XProtect on MacOS yields a much better performance experience with Ginkgo.

v2.23.1

19 Mar 17:29
Compare
Choose a tag to compare

2.23.1

🚨 For users on MacOS 🚨

A long-standing Ginkgo performance issue on MacOS seems to be due to mac's antimalware XProtect. You can follow the instructions here to disable it in your terminal. Doing so sped up Ginkgo's own test suite from 1m8s to 47s.

Fixes

Ginkgo's CLI is now a bit clearer if you pass flags in incorrectly:

  • make it clearer that you need to pass a filename to the various profile flags, not an absolute directory [a0e52ff]
  • emit an error and exit if the ginkgo invocation includes flags after positional arguments [b799d8d]

This might cause existing CI builds to fail. If so then it's likely that your CI build was misconfigured and should be corrected. Open an issue if you need help.

v2.23.0

05 Mar 20:27
Compare
Choose a tag to compare

2.23.0

Ginkgo 2.23.0 adds a handful of methods to GinkgoT() to make it compatible with the testing.TB interface in Go 1.24. GinkgoT().Context(), in particular, is a useful shorthand for generating a new context that will clean itself up in a DeferCleanup(). This has subtle behavior differences from the golang implementation but should make sense in a Ginkgo... um... context.

Features

  • bump to go 1.24.0 - support new testing.TB methods and add a test to cover testing.TB regressions [37a511b]

Fixes

  • fix edge case where build -o is pointing at an explicit file, not a directory [7556a86]
  • Fix binary paths when precompiling multiple suites. [4df06c6]

Maintenance

  • Fix: Correct Markdown list rendering in MIGRATING_TO_V2.md [cbcf39a]
  • docs: fix test workflow badge (#1512) [9b261ff]
  • Bump golang.org/x/net in /integration/_fixtures/version_mismatch_fixture (#1516) [00f19c8]
  • Bump golang.org/x/tools from 0.28.0 to 0.30.0 (#1515) [e98a4df]
  • Bump activesupport from 6.0.6.1 to 6.1.7.5 in /docs (#1504) [60cc4e2]
  • Bump github-pages from 231 to 232 in /docs (#1447) [fea6f2d]
  • Bump rexml from 3.2.8 to 3.3.9 in /docs (#1497) [31d7813]
  • Bump webrick from 1.8.1 to 1.9.1 in /docs (#1501) [fc3bbd6]
  • Code linting (#1500) [aee0d56]
  • change interface{} to any (#1502) [809a710]