1## 2.17.2
2
3### Fixes
4- fix: close files [32259c8]
5- fix github output log level for skipped specs [780e7a3]
6
7### Maintenance
8- Bump github.com/google/pprof [d91fe4e]
9- Bump github.com/go-task/slim-sprig to v3 [8cb662e]
10- Bump golang.org/x/net in /integration/_fixtures/version_mismatch_fixture (#1391) [3134422]
11- Bump github-pages from 230 to 231 in /docs (#1384) [eca81b4]
12- Bump golang.org/x/tools from 0.19.0 to 0.20.0 (#1383) [760def8]
13- Bump golang.org/x/net from 0.23.0 to 0.24.0 (#1381) [4ce33f4]
14- Fix test for gomega version bump [f2fcd97]
15- Bump github.com/onsi/gomega from 1.30.0 to 1.33.0 (#1390) [fd622d2]
16- Bump golang.org/x/tools from 0.17.0 to 0.19.0 (#1368) [5474a26]
17- Bump github-pages from 229 to 230 in /docs (#1359) [e6d1170]
18- Bump google.golang.org/protobuf from 1.28.0 to 1.33.0 (#1374) [7f447b2]
19- Bump golang.org/x/net from 0.20.0 to 0.23.0 (#1380) [f15239a]
20
21## 2.17.1
22
23### Fixes
24- If the user sets --seed=0, make sure all parallel nodes get the same seed [af0330d]
25
26## 2.17.0
27
28### Features
29
30- add `--github-output` for nicer output in github actions [e8a2056]
31
32### Maintenance
33
34- fix typo in core_dsl.go [977bc6f]
35- Fix typo in docs [e297e7b]
36
37## 2.16.0
38
39### Features
40- add SpecContext to reporting nodes
41
42### Fixes
43- merge coverages instead of combining them (#1329) (#1340) [23f0cc5]
44- core_dsl: disable Getwd() with environment variable (#1357) [cd418b7]
45
46### Maintenance
47- docs/index.md: Typo [2cebe8d]
48- fix docs [06de431]
49- chore: test with Go 1.22 (#1352) [898cba9]
50- Bump golang.org/x/tools from 0.16.1 to 0.17.0 (#1336) [17ae120]
51- Bump golang.org/x/sys from 0.15.0 to 0.16.0 (#1327) [5a179ed]
52- Bump github.com/go-logr/logr from 1.3.0 to 1.4.1 (#1321) [a1e6b69]
53- Bump github-pages and jekyll-feed in /docs (#1351) [d52951d]
54- Fix docs for handling failures in goroutines (#1339) [4471b2e]
55
56## 2.15.0
57
58### Features
59
60- JUnit reports now interpret Label(owner:X) and set owner to X. [8f3bd70]
61- include cancellation reason when cancelling spec context [96e915c]
62
63### Fixes
64
65- emit output of failed go tool cover invocation so users can try to debug things for themselves [c245d09]
66- fix outline when using nodot in ginkgo v2 [dca77c8]
67- Document areas where GinkgoT() behaves differently from testing.T [dbaf18f]
68- bugfix(docs): use Unsetenv instead of Clearenv (#1337) [6f67a14]
69
70### Maintenance
71
72- Bump to go 1.20 [4fcd0b3]
73
74## 2.14.0
75
76### Features
77You can now use `GinkgoTB()` when you need an instance of `testing.TB` to pass to a library.
78
79Prior to this release table testing only supported generating individual `It`s for each test entry. `DescribeTableSubtree` extends table testing support to entire testing subtrees - under the hood `DescrieTableSubtree` generates a new container for each entry and invokes your function to fill our the container. See the [docs](https://onsi.github.io/ginkgo/#generating-subtree-tables) to learn more.
80
81- Introduce DescribeTableSubtree [65ec56d]
82- add GinkgoTB() to docs [4a2c832]
83- Add GinkgoTB() function (#1333) [92b6744]
84
85### Fixes
86- Fix typo in internal/suite.go (#1332) [beb9507]
87- Fix typo in docs/index.md (#1319) [4ac3a13]
88- allow wasm to compile with ginkgo present (#1311) [b2e5bc5]
89
90### Maintenance
91- Bump golang.org/x/tools from 0.16.0 to 0.16.1 (#1316) [465a8ec]
92- Bump actions/setup-go from 4 to 5 (#1313) [eab0e40]
93- Bump github/codeql-action from 2 to 3 (#1317) [fbf9724]
94- Bump golang.org/x/crypto (#1318) [3ee80ee]
95- Bump golang.org/x/tools from 0.14.0 to 0.16.0 (#1306) [123e1d5]
96- Bump github.com/onsi/gomega from 1.29.0 to 1.30.0 (#1297) [558f6e0]
97- Bump golang.org/x/net from 0.17.0 to 0.19.0 (#1307) [84ff7f3]
98
99## 2.13.2
100
101### Fixes
102- Fix file handler leak (#1309) [e2e81c8]
103- Avoid allocations with `(*regexp.Regexp).MatchString` (#1302) [3b2a2a7]
104
105## 2.13.1
106
107### Fixes
108- # 1296 fix(precompiled test guite): exec bit check omitted on Windows (#1301) [26eea01]
109
110### Maintenance
111- Bump github.com/go-logr/logr from 1.2.4 to 1.3.0 (#1291) [7161a9d]
112- Bump golang.org/x/sys from 0.13.0 to 0.14.0 (#1295) [7fc7b10]
113- Bump golang.org/x/tools from 0.12.0 to 0.14.0 (#1282) [74bbd65]
114- Bump github.com/onsi/gomega from 1.27.10 to 1.29.0 (#1290) [9373633]
115- Bump golang.org/x/net in /integration/_fixtures/version_mismatch_fixture (#1286) [6e3cf65]
116
117## 2.13.0
118
119### Features
120
121Add PreviewSpect() to enable programmatic preview access to the suite report (fixes #1225)
122
123## 2.12.1
124
125### Fixes
126- Print logr prefix if it exists (#1275) [90d4846]
127
128### Maintenance
129- Bump actions/checkout from 3 to 4 (#1271) [555f543]
130- Bump golang.org/x/sys from 0.11.0 to 0.12.0 (#1270) [d867b7d]
131
132## 2.12.0
133
134### Features
135
136- feat: allow MustPassRepeatedly decorator to be set at suite level (#1266) [05de518]
137
138### Fixes
139
140- fix-errors-in-readme (#1244) [27c2f5d]
141
142### Maintenance
143
144Various chores/dependency bumps.
145
146## 2.11.0
147
148In prior versions of Ginkgo specs the CLI filter flags (e.g. `--focus`, `--label-filter`) would _override_ any programmatic focus. This behavior has proved surprising and confusing in at least the following ways:
149
150- users cannot combine programmatic filters and CLI filters to more efficiently select subsets of tests
151- CLI filters can override programmatic focus on CI systems resulting in an exit code of 0 despite the presence of (incorrectly!) committed focused specs.
152
153Going forward Ginkgo will AND all programmatic and CLI filters. Moreover, the presence of any programmatic focused tests will always result in a non-zero exit code.
154
155This change is technically a change in Ginkgo's external contract and may require some users to make changes to successfully adopt. Specifically: it's possible some users were intentionally using CLI filters to override programmatic focus. If this is you please open an issue so we can explore solutions to the underlying problem you are trying to solve.
156
157### Fixes
158- Programmatic focus is no longer overwrriten by CLI filters [d6bba86]
159
160### Maintenance
161- Bump github.com/onsi/gomega from 1.27.7 to 1.27.8 (#1218) [4a70a38]
162- Bump golang.org/x/sys from 0.8.0 to 0.9.0 (#1219) [97eda4d]
163
164## 2.10.0
165
166### Features
167- feat(ginkgo/generators): add --tags flag (#1216) [a782a77]
168 adds a new --tags flag to ginkgo generate
169
170### Fixes
171- Fix broken link of MIGRATING_TO_V2.md (#1217) [548d78e]
172
173### Maintenance
174- Bump golang.org/x/tools from 0.9.1 to 0.9.3 (#1215) [2b76a5e]
175
176## 2.9.7
177
178### Fixes
179- fix race when multiple defercleanups are called in goroutines [07fc3a0]
180
181## 2.9.6
182
183### Fixes
184- fix: create parent directory before report files (#1212) [0ac65de]
185
186### Maintenance
187- Bump github.com/onsi/gomega from 1.27.6 to 1.27.7 (#1202) [3e39231]
188
189## 2.9.5
190
191### Fixes
192- ensure the correct deterministic sort order is produced when ordered specs are generated by a helper function [7fa0b6b]
193
194### Maintenance
195- fix generators link (#1200) [9f9d8b9]
196- Bump golang.org/x/tools from 0.8.0 to 0.9.1 (#1196) [150e3f2]
197- fix spelling err in docs (#1199) [0013b1a]
198- Bump golang.org/x/sys from 0.7.0 to 0.8.0 (#1193) [9e9e3e5]
199
200## 2.9.4
201
202### Fixes
203- fix hang with ginkgo -p (#1192) [15d4bdc] - this addresses a _long_ standing issue related to Ginkgo hanging when a child process spawned by the test does not exit.
204
205- fix: fail fast may cause Serial spec or cleanup Node interrupted (#1178) [8dea88b] - prior to this there was a small gap in which specs on other processes might start even if one process has tried to abort the suite.
206
207
208### Maintenance
209- Document run order when multiple setup nodes are at the same nesting level [903be81]
210
211## 2.9.3
212
213### Features
214- Add RenderTimeline to GinkgoT() [c0c77b6]
215
216### Fixes
217- update Measure deprecation message. fixes #1176 [227c662]
218- add newlines to GinkgoLogr (#1170) (#1171) [0de0e7c]
219
220### Maintenance
221- Bump commonmarker from 0.23.8 to 0.23.9 in /docs (#1183) [8b925ab]
222- Bump nokogiri from 1.14.1 to 1.14.3 in /docs (#1184) [e3795a4]
223- Bump golang.org/x/tools from 0.7.0 to 0.8.0 (#1182) [b453793]
224- Bump actions/setup-go from 3 to 4 (#1164) [73ed75b]
225- Bump github.com/onsi/gomega from 1.27.4 to 1.27.6 (#1173) [0a2bc64]
226- Bump github.com/go-logr/logr from 1.2.3 to 1.2.4 (#1174) [f41c557]
227- Bump golang.org/x/sys from 0.6.0 to 0.7.0 (#1179) [8e423e5]
228
229## 2.9.2
230
231### Maintenance
232- Bump github.com/go-task/slim-sprig (#1167) [3fcc5bf]
233- Bump github.com/onsi/gomega from 1.27.3 to 1.27.4 (#1163) [6143ffe]
234
235## 2.9.1
236
237### Fixes
238This release fixes a longstanding issue where `ginkgo -coverpkg=./...` would not work. This is now resolved and fixes [#1161](https://github.com/onsi/ginkgo/issues/1161) and [#995](https://github.com/onsi/ginkgo/issues/995)
239- Support -coverpkg=./... [26ca1b5]
240- document coverpkg a bit more clearly [fc44c3b]
241
242### Maintenance
243- bump various dependencies
244- Improve Documentation and fix typo (#1158) [93de676]
245
246## 2.9.0
247
248### Features
249- AttachProgressReporter is an experimental feature that allows users to provide arbitrary information when a ProgressReport is requested [28801fe]
250
251- GinkgoT() has been expanded to include several Ginkgo-specific methods [2bd5a3b]
252
253 The intent is to enable the development of third-party libraries that integrate deeply with Ginkgo using `GinkgoT()` to access Ginkgo's functionality.
254
255## 2.8.4
256
257### Features
258- Add OmitSuiteSetupNodes to JunitReportConfig (#1147) [979fbc2]
259- Add a reference to ginkgolinter in docs.index.md (#1143) [8432589]
260
261### Fixes
262- rename tools hack to see if it fixes things for downstream users [a8bb39a]
263
264### Maintenance
265- Bump golang.org/x/text (#1144) [41b2a8a]
266- Bump github.com/onsi/gomega from 1.27.0 to 1.27.1 (#1142) [7c4f583]
267
268## 2.8.3
269
270Released to fix security issue in golang.org/x/net dependency
271
272### Maintenance
273
274- Bump golang.org/x/net from 0.6.0 to 0.7.0 (#1141) [fc1a02e]
275- remove tools.go hack from documentation [0718693]
276
277## 2.8.2
278
279Ginkgo now includes a `tools.go` file in the root directory of the `ginkgo` package. This should allow modules that simply `go get github.com/onsi/ginkgo/v2` to also pull in the CLI dependencies. This obviates the need for consumers of Ginkgo to have their own `tools.go` file and makes it simpler to ensure that the version of the `ginkgo` CLI being used matches the version of the library. You can simply run `go run github.com/onsi/ginkgo/v2/ginkgo` to run the version of the cli associated with your package go.mod.
280
281### Maintenance
282
283- Bump github.com/onsi/gomega from 1.26.0 to 1.27.0 (#1139) [5767b0a]
284- Fix minor typos (#1138) [e1e9723]
285- Fix link in V2 Migration Guide (#1137) [a588f60]
286
287## 2.8.1
288
289### Fixes
290- lock around default report output to avoid triggering the race detector when calling By from goroutines [2d5075a]
291- don't run ReportEntries through sprintf [febbe38]
292
293### Maintenance
294- Bump golang.org/x/tools from 0.5.0 to 0.6.0 (#1135) [11a4860]
295- test: update matrix for Go 1.20 (#1130) [4890a62]
296- Bump golang.org/x/sys from 0.4.0 to 0.5.0 (#1133) [a774638]
297- Bump github.com/onsi/gomega from 1.25.0 to 1.26.0 (#1120) [3f233bd]
298- Bump github-pages from 227 to 228 in /docs (#1131) [f9b8649]
299- Bump activesupport from 6.0.6 to 6.0.6.1 in /docs (#1127) [6f8c042]
300- Update index.md with instructions on how to upgrade Ginkgo [833a75e]
301
302## 2.8.0
303
304### Features
305
306- Introduce GinkgoHelper() to track and exclude helper functions from potential CodeLocations [e19f556]
307
308Modeled after `testing.T.Helper()`. Now, rather than write code like:
309
310```go
311func helper(model Model) {
312 Expect(model).WithOffset(1).To(BeValid())
313 Expect(model.SerialNumber).WithOffset(1).To(MatchRegexp(/[a-f0-9]*/))
314}
315```
316
317you can stop tracking offsets (which makes nesting composing helpers nearly impossible) and simply write:
318
319```go
320func helper(model Model) {
321 GinkgoHelper()
322 Expect(model).To(BeValid())
323 Expect(model.SerialNumber).To(MatchRegexp(/[a-f0-9]*/))
324}
325```
326
327- Introduce GinkgoLabelFilter() and Label().MatchesLabelFilter() to make it possible to programmatically match filters (fixes #1119) [2f6597c]
328
329You can now write code like this:
330
331```go
332BeforeSuite(func() {
333 if Label("slow").MatchesLabelFilter(GinkgoLabelFilter()) {
334 // do slow setup
335 }
336
337 if Label("fast").MatchesLabelFilter(GinkgoLabelFilter()) {
338 // do fast setup
339 }
340})
341```
342
343to programmatically check whether a given set of labels will match the configured `--label-filter`.
344
345### Maintenance
346
347- Bump webrick from 1.7.0 to 1.8.1 in /docs (#1125) [ea4966e]
348- cdeql: add ruby language (#1124) [9dd275b]
349- dependabot: add bundler package-ecosystem for docs (#1123) [14e7bdd]
350
351## 2.7.1
352
353### Fixes
354- Bring back SuiteConfig.EmitSpecProgress to avoid compilation issue for consumers that set it manually [d2a1cb0]
355
356### Maintenance
357- Bump github.com/onsi/gomega from 1.24.2 to 1.25.0 (#1118) [cafece6]
358- Bump golang.org/x/tools from 0.4.0 to 0.5.0 (#1111) [eda66c2]
359- Bump golang.org/x/sys from 0.3.0 to 0.4.0 (#1112) [ac5ccaa]
360- Bump github.com/onsi/gomega from 1.24.1 to 1.24.2 (#1097) [eee6480]
361
362## 2.7.0
363
364### Features
365- Introduce ContinueOnFailure for Ordered containers [e0123ca] - Ordered containers that are also decorated with ContinueOnFailure will not stop running specs after the first spec fails.
366- Support for bootstrap commands to use custom data for templates (#1110) [7a2b242]
367- Support for labels and pending decorator in ginkgo outline output (#1113) [e6e3b98]
368- Color aliases for custom color support (#1101) [49fab7a]
369
370### Fixes
371- correctly ensure deterministic spec order, even if specs are generated by iterating over a map [89dda20]
372- Fix a bug where timedout specs were not correctly treated as failures when determining whether or not to run AfterAlls in an Ordered container.
373- Ensure go test coverprofile outputs to the expected location (#1105) [b0bd77b]
374
375## 2.6.1
376
377### Features
378- Override formatter colors from envvars - this is a new feature but an alternative approach involving config files might be taken in the future (#1095) [60240d1]
379
380### Fixes
381- GinkgoRecover now supports ignoring panics that match a specific, hidden, interface [301f3e2]
382
383### Maintenance
384- Bump github.com/onsi/gomega from 1.24.0 to 1.24.1 (#1077) [3643823]
385- Bump golang.org/x/tools from 0.2.0 to 0.4.0 (#1090) [f9f856e]
386- Bump nokogiri from 1.13.9 to 1.13.10 in /docs (#1091) [0d7087e]
387
388## 2.6.0
389
390### Features
391- `ReportBeforeSuite` provides access to the suite report before the suite begins.
392- Add junit config option for omitting leafnodetype (#1088) [956e6d2]
393- Add support to customize junit report config to omit spec labels (#1087) [de44005]
394
395### Fixes
396- Fix stack trace pruning so that it has a chance of working on windows [2165648]
397
398## 2.5.1
399
400### Fixes
401- skipped tests only show as 'S' when running with -v [3ab38ae]
402- Fix typo in docs/index.md (#1082) [55fc58d]
403- Fix typo in docs/index.md (#1081) [8a14f1f]
404- Fix link notation in docs/index.md (#1080) [2669612]
405- Fix typo in `--progress` deprecation message (#1076) [b4b7edc]
406
407### Maintenance
408- chore: Included githubactions in the dependabot config (#976) [baea341]
409- Bump golang.org/x/sys from 0.1.0 to 0.2.0 (#1075) [9646297]
410
411## 2.5.0
412
413### Ginkgo output now includes a timeline-view of the spec
414
415This commit changes Ginkgo's default output. Spec details are now
416presented as a **timeline** that includes events that occur during the spec
417lifecycle interleaved with any GinkgoWriter content. This makes is much easier
418to understand the flow of a spec and where a given failure occurs.
419
420The --progress, --slow-spec-threshold, --always-emit-ginkgo-writer flags
421and the SuppressProgressReporting decorator have all been deprecated. Instead
422the existing -v and -vv flags better capture the level of verbosity to display. However,
423a new --show-node-events flag is added to include node `> Enter` and `< Exit` events
424in the spec timeline.
425
426In addition, JUnit reports now include the timeline (rendered with -vv) and custom JUnit
427reports can be configured and generated using
428`GenerateJUnitReportWithConfig(report types.Report, dst string, config JunitReportConfig)`
429
430Code should continue to work unchanged with this version of Ginkgo - however if you have tooling that
431was relying on the specific output format of Ginkgo you _may_ run into issues. Ginkgo's console output is not guaranteed to be stable for tooling and automation purposes. You should, instead, use Ginkgo's JSON format
432to build tooling on top of as it has stronger guarantees to be stable from version to version.
433
434### Features
435- Provide details about which timeout expired [0f2fa27]
436
437### Fixes
438- Add Support Policy to docs [c70867a]
439
440### Maintenance
441- Bump github.com/onsi/gomega from 1.22.1 to 1.23.0 (#1070) [bb3b4e2]
442
443## 2.4.0
444
445### Features
446
447- DeferCleanup supports functions with multiple-return values [5e33c75]
448- Add GinkgoLogr (#1067) [bf78c28]
449- Introduction of 'MustPassRepeatedly' decorator (#1051) [047c02f]
450
451### Fixes
452- correcting some typos (#1064) [1403d3c]
453- fix flaky internal_integration interrupt specs [2105ba3]
454- Correct busted link in README [be6b5b9]
455
456### Maintenance
457- Bump actions/checkout from 2 to 3 (#1062) [8a2f483]
458- Bump golang.org/x/tools from 0.1.12 to 0.2.0 (#1065) [529c4e8]
459- Bump github/codeql-action from 1 to 2 (#1061) [da09146]
460- Bump actions/setup-go from 2 to 3 (#1060) [918040d]
461- Bump github.com/onsi/gomega from 1.22.0 to 1.22.1 (#1053) [2098e4d]
462- Bump nokogiri from 1.13.8 to 1.13.9 in /docs (#1066) [1d74122]
463- Add GHA to dependabot config [4442772]
464
465## 2.3.1
466
467## Fixes
468Several users were invoking `ginkgo` by installing the latest version of the cli via `go install github.com/onsi/ginkgo/v2/ginkgo@latest`. When 2.3.0 was released this resulted in an influx of issues as CI systems failed due to a change in the internal contract between the Ginkgo CLI and the Ginkgo library. Ginkgo only supports running the same version of the library as the cli (which is why both are packaged in the same repository).
469
470With this patch release, the ginkgo CLI can now identify a version mismatch and emit a helpful error message.
471
472- Ginkgo cli can identify version mismatches and emit a helpful error message [bc4ae2f]
473- further emphasize that a version match is required when running Ginkgo on CI and/or locally [2691dd8]
474
475### Maintenance
476- bump gomega to v1.22.0 [822a937]
477
478## 2.3.0
479
480### Interruptible Nodes and Timeouts
481
482Ginkgo now supports per-node and per-spec timeouts on interruptible nodes. Check out the [documentation for all the details](https://onsi.github.io/ginkgo/#spec-timeouts-and-interruptible-nodes) but the gist is you can now write specs like this:
483
484```go
485It("is interruptible", func(ctx SpecContext) { // or context.Context instead of SpecContext, both are valid.
486 // do things until `ctx.Done()` is closed, for example:
487 req, err := http.NewRequestWithContext(ctx, "POST", "/build-widgets", nil)
488 Expect(err).NotTo(HaveOccured())
489 _, err := http.DefaultClient.Do(req)
490 Expect(err).NotTo(HaveOccured())
491
492 Eventually(client.WidgetCount).WithContext(ctx).Should(Equal(17))
493}, NodeTimeout(time.Second*20), GracePeriod(5*time.Second))
494```
495
496and have Ginkgo ensure that the node completes before the timeout elapses. If it does elapse, or if an external interrupt is received (e.g. `^C`) then Ginkgo will cancel the context and wait for the Grace Period for the node to exit before proceeding with any cleanup nodes associated with the spec. The `ctx` provided by Ginkgo can also be passed down to Gomega's `Eventually` to have all assertions within the node governed by a single deadline.
497
498### Features
499
500- Ginkgo now records any additional failures that occur during the cleanup of a failed spec. In prior versions this information was quietly discarded, but the introduction of a more rigorous approach to timeouts and interruptions allows Ginkgo to better track subsequent failures.
501- `SpecContext` also provides a mechanism for third-party libraries to provide additional information when a Progress Report is generated. Gomega uses this to provide the current state of an `Eventually().WithContext()` assertion when a Progress Report is requested.
502- DescribeTable now exits with an error if it is not passed any Entries [a4c9865]
503
504## Fixes
505- fixes crashes on newer Ruby 3 installations by upgrading github-pages gem dependency [92c88d5]
506- Make the outline command able to use the DSL import [1be2427]
507
508## Maintenance
509- chore(docs): delete no meaning d [57c373c]
510- chore(docs): Fix hyperlinks [30526d5]
511- chore(docs): fix code blocks without language settings [cf611c4]
512- fix intra-doc link [b541bcb]
513
514## 2.2.0
515
516### Generate real-time Progress Reports [f91377c]
517
518Ginkgo can now generate Progress Reports to point users at the current running line of code (including a preview of the actual source code) and a best guess at the most relevant subroutines.
519
520These Progress Reports allow users to debug stuck or slow tests without exiting the Ginkgo process. A Progress Report can be generated at any time by sending Ginkgo a `SIGINFO` (`^T` on MacOS/BSD) or `SIGUSR1`.
521
522In addition, the user can specify `--poll-progress-after` and `--poll-progress-interval` to have Ginkgo start periodically emitting progress reports if a given node takes too long. These can be overriden/set on a per-node basis with the `PollProgressAfter` and `PollProgressInterval` decorators.
523
524Progress Reports are emitted to stdout, and also stored in the machine-redable report formats that Ginkgo supports.
525
526Ginkgo also uses this progress reporting infrastructure under the hood when handling timeouts and interrupts. This yields much more focused, useful, and informative stack traces than previously.
527
528### Features
529- `BeforeSuite`, `AfterSuite`, `SynchronizedBeforeSuite`, `SynchronizedAfterSuite`, and `ReportAfterSuite` now support (the relevant subset of) decorators. These can be passed in _after_ the callback functions that are usually passed into these nodes.
530
531 As a result the **signature of these methods has changed** and now includes a trailing `args ...interface{}`. For most users simply using the DSL, this change is transparent. However if you were assigning one of these functions to a custom variable (or passing it around) then your code may need to change to reflect the new signature.
532
533### Maintenance
534- Modernize the invocation of Ginkgo in github actions [0ffde58]
535- Update reocmmended CI settings in docs [896bbb9]
536- Speed up unnecessarily slow integration test [6d3a90e]
537
538## 2.1.6
539
540### Fixes
541- Add `SuppressProgressReporting` decorator to turn off --progress announcements for a given node [dfef62a]
542- chore: remove duplicate word in comments [7373214]
543
544## 2.1.5
545
546### Fixes
547- drop -mod=mod instructions; fixes #1026 [6ad7138]
548- Ensure `CurrentSpecReport` and `AddReportEntry` are thread-safe [817c09b]
549- remove stale importmap gcflags flag test [3cd8b93]
550- Always emit spec summary [5cf23e2] - even when only one spec has failed
551- Fix ReportAfterSuite usage in docs [b1864ad]
552- fixed typo (#997) [219cc00]
553- TrimRight is not designed to trim Suffix [71ebb74]
554- refactor: replace strings.Replace with strings.ReplaceAll (#978) [143d208]
555- fix syntax in examples (#975) [b69554f]
556
557### Maintenance
558- Bump github.com/onsi/gomega from 1.20.0 to 1.20.1 (#1027) [e5dfce4]
559- Bump tzinfo from 1.2.9 to 1.2.10 in /docs (#1006) [7ae91c4]
560- Bump github.com/onsi/gomega from 1.19.0 to 1.20.0 (#1005) [e87a85a]
561- test: add new Go 1.19 to test matrix (#1014) [bbefe12]
562- Bump golang.org/x/tools from 0.1.11 to 0.1.12 (#1012) [9327906]
563- Bump golang.org/x/tools from 0.1.10 to 0.1.11 (#993) [f44af96]
564- Bump nokogiri from 1.13.3 to 1.13.6 in /docs (#981) [ef336aa]
565
566## 2.1.4
567
568### Fixes
569- Numerous documentation typos
570- Prepend `when` when using `When` (this behavior was in 1.x but unintentionally lost during the 2.0 rewrite) [efce903]
571- improve error message when a parallel process fails to report back [a7bd1fe]
572- guard against concurrent map writes in DeprecationTracker [0976569]
573- Invoke reporting nodes during dry-run (fixes #956 and #935) [aae4480]
574- Fix ginkgo import circle [f779385]
575
576## 2.1.3
577
578See [https://onsi.github.io/ginkgo/MIGRATING_TO_V2](https://onsi.github.io/ginkgo/MIGRATING_TO_V2) for details on V2.
579
580### Fixes
581- Calling By in a container node now emits a useful error. [ff12cee]
582
583## 2.1.2
584
585### Fixes
586
587- Track location of focused specs correctly in `ginkgo unfocus` [a612ff1]
588- Profiling suites with focused specs no longer generates an erroneous failure message [8fbfa02]
589- Several documentation typos fixed. Big thanks to everyone who helped catch them and report/fix them!
590
591## 2.1.1
592
593See [https://onsi.github.io/ginkgo/MIGRATING_TO_V2](https://onsi.github.io/ginkgo/MIGRATING_TO_V2) for details on V2.
594
595### Fixes
596- Suites that only import the new dsl packages are now correctly identified as Ginkgo suites [ec17e17]
597
598## 2.1.0
599
600See [https://onsi.github.io/ginkgo/MIGRATING_TO_V2](https://onsi.github.io/ginkgo/MIGRATING_TO_V2) for details on V2.
601
6022.1.0 is a minor release with a few tweaks:
603
604- Introduce new DSL packages to enable users to pick-and-choose which portions of the DSL to dot-import. [90868e2] More details [here](https://onsi.github.io/ginkgo/#alternatives-to-dot-importing-ginkgo).
605- Add error check for invalid/nil parameters to DescribeTable [6f8577e]
606- Myriad docs typos fixed (thanks everyone!) [718542a, ecb7098, 146654c, a8f9913, 6bdffde, 03dcd7e]
607
608## 2.0.0
609
610See [https://onsi.github.io/ginkgo/MIGRATING_TO_V2](https://onsi.github.io/ginkgo/MIGRATING_TO_V2)
611
612## 1.16.5
613
614Ginkgo 2.0 now has a Release Candidate. 1.16.5 advertises the existence of the RC.
6151.16.5 deprecates GinkgoParallelNode in favor of GinkgoParallelProcess
616
617You can silence the RC advertisement by setting an `ACK_GINKGO_RC=true` environment variable or creating a file in your home directory called `.ack-ginkgo-rc`
618
619## 1.16.4
620
621### Fixes
6221.16.4 retracts 1.16.3. There are no code changes. The 1.16.3 tag was associated with the wrong commit and an attempt to change it after-the-fact has proven problematic. 1.16.4 retracts 1.16.3 in Ginkgo's go.mod and creates a new, correctly tagged, release.
623
624## 1.16.3
625
626### Features
627- Measure is now deprecated and emits a deprecation warning.
628
629## 1.16.2
630
631### Fixes
632- Deprecations can be suppressed by setting an `ACK_GINKGO_DEPRECATIONS=<semver>` environment variable.
633
634## 1.16.1
635
636### Fixes
637- Suppress --stream deprecation warning on windows (#793)
638
639## 1.16.0
640
641### Features
642- Advertise Ginkgo 2.0. Introduce deprecations. [9ef1913]
643 - Update README.md to advertise that Ginkgo 2.0 is coming.
644 - Backport the 2.0 DeprecationTracker and start alerting users
645 about upcoming deprecations.
646
647- Add slim-sprig template functions to bootstrap/generate (#775) [9162b86]
648
649- Fix accidental reference to 1488 (#784) [9fb7fe4]
650
651## 1.15.2
652
653### Fixes
654- ignore blank `-focus` and `-skip` flags (#780) [e90a4a0]
655
656## 1.15.1
657
658### Fixes
659- reporters/junit: Use `system-out` element instead of `passed` (#769) [9eda305]
660
661## 1.15.0
662
663### Features
664- Adds 'outline' command to print the outline of specs/containers in a file (#754) [071c369] [6803cc3] [935b538] [06744e8] [0c40583]
665- Add support for using template to generate tests (#752) [efb9e69]
666- Add a Chinese Doc #755 (#756) [5207632]
667- cli: allow multiple -focus and -skip flags (#736) [9a782fb]
668
669### Fixes
670- Add _internal to filename of tests created with internal flag (#751) [43c12da]
671
672## 1.14.2
673
674### Fixes
675- correct handling windows backslash in import path (#721) [97f3d51]
676- Add additional methods to GinkgoT() to improve compatibility with the testing.TB interface [b5fe44d]
677
678## 1.14.1
679
680### Fixes
681- Discard exported method declaration when running ginkgo bootstrap (#558) [f4b0240]
682
683## 1.14.0
684
685### Features
686- Defer running top-level container nodes until RunSpecs is called [d44dedf]
687- [Document Ginkgo lifecycle](http://onsi.github.io/ginkgo/#understanding-ginkgos-lifecycle)
688- Add `extensions/globals` package (#692) [3295c8f] - this can be helpful in contexts where you are test-driving your test-generation code (see [#692](https://github.com/onsi/ginkgo/pull/692))
689- Print Skip reason in JUnit reporter if one was provided [820dfab]
690
691## 1.13.0
692
693### Features
694- Add a version of table.Entry that allows dumping the entry parameters. (#689) [21eaef2]
695
696### Fixes
697- Ensure integration tests pass in an environment sans GOPATH [606fba2]
698- Add books package (#568) [fc0e44e]
699- doc(readme): installation via "tools package" (#677) [83bb20e]
700- Solve the undefined: unix.Dup2 compile error on mips64le (#680) [0624f75]
701- Import package without dot (#687) [6321024]
702- Fix integration tests to stop require GOPATH (#686) [a912ec5]
703
704## 1.12.3
705
706### Fixes
707- Print correct code location of failing table test (#666) [c6d7afb]
708
709## 1.12.2
710
711### Fixes
712- Update dependencies [ea4a036]
713
714## 1.12.1
715
716### Fixes
717- Make unfocus ("blur") much faster (#674) [8b18061]
718- Fix typo (#673) [7fdcbe8]
719- Test against 1.14 and remove 1.12 [d5c2ad6]
720- Test if a coverprofile content is empty before checking its latest character (#670) [14d9fa2]
721- replace tail package with maintained one. this fixes go get errors (#667) [4ba33d4]
722- improve ginkgo performance - makes progress on #644 [a14f98e]
723- fix convert integration tests [1f8ba69]
724- fix typo successful -> successful (#663) [1ea49cf]
725- Fix invalid link (#658) [b886136]
726- convert utility : Include comments from source (#657) [1077c6d]
727- Explain what BDD means [d79e7fb]
728- skip race detector test on unsupported platform (#642) [f8ab89d]
729- Use Dup2 from golang.org/x/sys/unix instead of syscallDup (#638) [5d53c55]
730- Fix missing newline in combined coverage file (#641) [6a07ea2]
731- check if a spec is run before returning SpecSummary (#645) [8850000]
732
733## 1.12.0
734
735### Features
736- Add module definition (#630) [78916ab]
737
738## 1.11.0
739
740### Features
741- Add syscall for riscv64 architecture [f66e896]
742- teamcity reporter: output location of test failure as well as test definition (#626) [9869142]
743- teamcity reporter: output newline after every service message (#625) [3cfa02d]
744- Add support for go module when running `generate` command (#578) [9c89e3f]
745
746## 1.10.3
747
748### Fixes
749- Set go_import_path in travis.yml to allow internal packages in forks (#607) [3b721db]
750- Add integration test [d90e0dc]
751- Fix coverage files combining [e5dde8c]
752- A new CLI option: -ginkgo.reportFile <file path> (#601) [034fd25]
753
754## 1.10.2
755
756### Fixes
757- speed up table entry generateIt() (#609) [5049dc5]
758- Fix. Write errors to stderr instead of stdout (#610) [7bb3091]
759
760## 1.10.1
761
762### Fixes
763- stack backtrace: fix skipping (#600) [2a4c0bd]
764
765## 1.10.0
766
767### Fixes
768- stack backtrace: fix alignment and skipping [66915d6]
769- fix typo in documentation [8f97b93]
770
771## 1.9.0
772
773### Features
774- Option to print output into report, when tests have passed [0545415]
775
776### Fixes
777- Fixed typos in comments [0ecbc58]
778- gofmt code [a7f8bfb]
779- Simplify code [7454d00]
780- Simplify concatenation, incrementation and function assignment [4825557]
781- Avoid unnecessary conversions [9d9403c]
782- JUnit: include more detailed information about panic [19cca4b]
783- Print help to stdout when the user asks for help [4cb7441]
784
785
786## 1.8.0
787
788### New Features
789- allow config of the vet flag for `go test` (#562) [3cd45fa]
790- Support projects using go modules [d56ee76]
791
792### Fixes and Minor Improvements
793- chore(godoc): fixes typos in Measurement funcs [dbaca8e]
794- Optimize focus to avoid allocations [f493786]
795- Ensure generated test file names are underscored [505cc35]
796
797## 1.7.0
798
799### New Features
800- Add JustAfterEach (#484) [0d4f080]
801
802### Fixes
803- Correctly round suite time in junit reporter [2445fc1]
804- Avoid using -i argument to go test for Golang 1.10+ [46bbc26]
805
806## 1.6.0
807
808### New Features
809- add --debug flag to emit node output to files (#499) [39febac]
810
811### Fixes
812- fix: for `go vet` to pass [69338ec]
813- docs: fix for contributing instructions [7004cb1]
814- consolidate and streamline contribution docs (#494) [d848015]
815- Make generated Junit file compatible with "Maven Surefire" (#488) [e51bee6]
816- all: gofmt [000d317]
817- Increase eventually timeout to 30s [c73579c]
818- Clarify asynchronous test behavior [294d8f4]
819- Travis badge should only show master [26d2143]
820
821## 1.5.0 5/10/2018
822
823### New Features
824- Supports go v1.10 (#443, #446, #451) [e873237, 468e89e, e37dbfe, a37f4c0, c0b857d, bca5260, 4177ca8]
825- Add a When() synonym for Context() (#386) [747514b, 7484dad, 7354a07, dd826c8]
826- Re-add noisySkippings flag [652e15c]
827- Allow coverage to be displayed for focused specs (#367) [11459a8]
828- Handle -outputdir flag (#364) [228e3a8]
829- Handle -coverprofile flag (#355) [43392d5]
830
831### Fixes
832- When using custom reporters register the custom reporters *before* the default reporter. This allows users to see the output of any print statements in their customer reporters. (#365) [8382b23]
833- When running a test and calculating the coverage using the `-coverprofile` and `-outputdir` flags, Ginkgo fails with an error if the directory does not exist. This is due to an [issue in go 1.10](https://github.com/golang/go/issues/24588) (#446) [b36a6e0]
834- `unfocus` command ignores vendor folder (#459) [e5e551c, c556e43, a3b6351, 9a820dd]
835- Ignore packages whose tests are all ignored by go (#456) [7430ca7, 6d8be98]
836- Increase the threshold when checking time measurements (#455) [2f714bf, 68f622c]
837- Fix race condition in coverage tests (#423) [a5a8ff7, ab9c08b]
838- Add an extra new line after reporting spec run completion for test2json [874520d]
839- added name name field to junit reported testsuite [ae61c63]
840- Do not set the run time of a spec when the dryRun flag is used (#438) [457e2d9, ba8e856]
841- Process FWhen and FSpecify when unfocusing (#434) [9008c7b, ee65bd, df87dfe]
842- Synchronies the access to the state of specs to avoid race conditions (#430) [7d481bc, ae6829d]
843- Added Duration on GinkgoTestDescription (#383) [5f49dad, 528417e, 0747408, 329d7ed]
844- Fix Ginkgo stack trace on failure for Specify (#415) [b977ede, 65ca40e, 6c46eb8]
845- Update README with Go 1.6+, Golang -> Go (#409) [17f6b97, bc14b66, 20d1598]
846- Use fmt.Errorf instead of errors.New(fmt.Sprintf (#401) [a299f56, 44e2eaa]
847- Imports in generated code should follow conventions (#398) [0bec0b0, e8536d8]
848- Prevent data race error when Recording a benchmark value from multiple go routines (#390) [c0c4881, 7a241e9]
849- Replace GOPATH in Environment [4b883f0]
850
851
852## 1.4.0 7/16/2017
853
854- `ginkgo` now provides a hint if you accidentally forget to run `ginkgo bootstrap` to generate a `*_suite_test.go` file that actually invokes the Ginkgo test runner. [#345](https://github.com/onsi/ginkgo/pull/345)
855- thanks to improvements in `go test -c` `ginkgo` no longer needs to fix Go's compilation output to ensure compilation errors are expressed relative to the CWD. [#357]
856- `ginkgo watch -watchRegExp=...` allows you to specify a custom regular expression to watch. Only files matching the regular expression are watched for changes (the default is `\.go$`) [#356]
857- `ginkgo` now always emits compilation output. Previously, only failed compilation output was printed out. [#277]
858- `ginkgo -requireSuite` now fails the test run if there are `*_test.go` files but `go test` fails to detect any tests. Typically this means you forgot to run `ginkgo bootstrap` to generate a suite file. [#344]
859- `ginkgo -timeout=DURATION` allows you to adjust the timeout for the entire test suite (default is 24 hours) [#248]
860
861## 1.3.0 3/28/2017
862
863Improvements:
864
865- Significantly improved parallel test distribution. Now instead of pre-sharding test cases across workers (which can result in idle workers and poor test performance) Ginkgo uses a shared queue to keep all workers busy until all tests are complete. This improves test-time performance and consistency.
866- `Skip(message)` can be used to skip the current test.
867- Added `extensions/table` - a Ginkgo DSL for [Table Driven Tests](http://onsi.github.io/ginkgo/#table-driven-tests)
868- Add `GinkgoRandomSeed()` - shorthand for `config.GinkgoConfig.RandomSeed`
869- Support for retrying flaky tests with `--flakeAttempts`
870- `ginkgo ./...` now recurses as you'd expect
871- Added `Specify` a synonym for `It`
872- Support colorise on Windows
873- Broader support for various go compilation flags in the `ginkgo` CLI
874
875Bug Fixes:
876
877- Ginkgo tests now fail when you `panic(nil)` (#167)
878
879## 1.2.0 5/31/2015
880
881Improvements
882
883- `ginkgo -coverpkg` calls down to `go test -coverpkg` (#160)
884- `ginkgo -afterSuiteHook COMMAND` invokes the passed-in `COMMAND` after a test suite completes (#152)
885- Relaxed requirement for Go 1.4+. `ginkgo` now works with Go v1.3+ (#166)
886
887## 1.2.0-beta
888
889Ginkgo now requires Go 1.4+
890
891Improvements:
892
893- Call reporters in reverse order when announcing spec completion -- allows custom reporters to emit output before the default reporter does.
894- Improved focus behavior. Now, this:
895
896 ```golang
897 FDescribe("Some describe", func() {
898 It("A", func() {})
899
900 FIt("B", func() {})
901 })
902 ```
903
904 will run `B` but *not* `A`. This tends to be a common usage pattern when in the thick of writing and debugging tests.
905- When `SIGINT` is received, Ginkgo will emit the contents of the `GinkgoWriter` before running the `AfterSuite`. Useful for debugging stuck tests.
906- When `--progress` is set, Ginkgo will write test progress (in particular, Ginkgo will say when it is about to run a BeforeEach, AfterEach, It, etc...) to the `GinkgoWriter`. This is useful for debugging stuck tests and tests that generate many logs.
907- Improved output when an error occurs in a setup or teardown block.
908- When `--dryRun` is set, Ginkgo will walk the spec tree and emit to its reporter *without* actually running anything. Best paired with `-v` to understand which specs will run in which order.
909- Add `By` to help document long `It`s. `By` simply writes to the `GinkgoWriter`.
910- Add support for precompiled tests:
911 - `ginkgo build <path-to-package>` will now compile the package, producing a file named `package.test`
912 - The compiled `package.test` file can be run directly. This runs the tests in series.
913 - To run precompiled tests in parallel, you can run: `ginkgo -p package.test`
914- Support `bootstrap`ping and `generate`ing [Agouti](http://agouti.org) specs.
915- `ginkgo generate` and `ginkgo bootstrap` now honor the package name already defined in a given directory
916- The `ginkgo` CLI ignores `SIGQUIT`. Prevents its stack dump from interlacing with the underlying test suite's stack dump.
917- The `ginkgo` CLI now compiles tests into a temporary directory instead of the package directory. This necessitates upgrading to Go v1.4+.
918- `ginkgo -notify` now works on Linux
919
920Bug Fixes:
921
922- If --skipPackages is used and all packages are skipped, Ginkgo should exit 0.
923- Fix tempfile leak when running in parallel
924- Fix incorrect failure message when a panic occurs during a parallel test run
925- Fixed an issue where a pending test within a focused context (or a focused test within a pending context) would skip all other tests.
926- Be more consistent about handling SIGTERM as well as SIGINT
927- When interrupted while concurrently compiling test suites in the background, Ginkgo now cleans up the compiled artifacts.
928- Fixed a long standing bug where `ginkgo -p` would hang if a process spawned by one of the Ginkgo parallel nodes does not exit. (Hooray!)
929
930## 1.1.0 (8/2/2014)
931
932No changes, just dropping the beta.
933
934## 1.1.0-beta (7/22/2014)
935New Features:
936
937- `ginkgo watch` now monitors packages *and their dependencies* for changes. The depth of the dependency tree can be modified with the `-depth` flag.
938- Test suites with a programmatic focus (`FIt`, `FDescribe`, etc...) exit with non-zero status code, even when they pass. This allows CI systems to detect accidental commits of focused test suites.
939- `ginkgo -p` runs the testsuite in parallel with an auto-detected number of nodes.
940- `ginkgo -tags=TAG_LIST` passes a list of tags down to the `go build` command.
941- `ginkgo --failFast` aborts the test suite after the first failure.
942- `ginkgo generate file_1 file_2` can take multiple file arguments.
943- Ginkgo now summarizes any spec failures that occurred at the end of the test run.
944- `ginkgo --randomizeSuites` will run tests *suites* in random order using the generated/passed-in seed.
945
946Improvements:
947
948- `ginkgo -skipPackage` now takes a comma-separated list of strings. If the *relative path* to a package matches one of the entries in the comma-separated list, that package is skipped.
949- `ginkgo --untilItFails` no longer recompiles between attempts.
950- Ginkgo now panics when a runnable node (`It`, `BeforeEach`, `JustBeforeEach`, `AfterEach`, `Measure`) is nested within another runnable node. This is always a mistake. Any test suites that panic because of this change should be fixed.
951
952Bug Fixes:
953
954- `ginkgo boostrap` and `ginkgo generate` no longer fail when dealing with `hyphen-separated-packages`.
955- parallel specs are now better distributed across nodes - fixed a crashing bug where (for example) distributing 11 tests across 7 nodes would panic
956
957## 1.0.0 (5/24/2014)
958New Features:
959
960- Add `GinkgoParallelNode()` - shorthand for `config.GinkgoConfig.ParallelNode`
961
962Improvements:
963
964- When compilation fails, the compilation output is rewritten to present a correct *relative* path. Allows ⌘-clicking in iTerm open the file in your text editor.
965- `--untilItFails` and `ginkgo watch` now generate new random seeds between test runs, unless a particular random seed is specified.
966
967Bug Fixes:
968
969- `-cover` now generates a correctly combined coverprofile when running with in parallel with multiple `-node`s.
970- Print out the contents of the `GinkgoWriter` when `BeforeSuite` or `AfterSuite` fail.
971- Fix all remaining race conditions in Ginkgo's test suite.
972
973## 1.0.0-beta (4/14/2014)
974Breaking changes:
975
976- `thirdparty/gomocktestreporter` is gone. Use `GinkgoT()` instead
977- Modified the Reporter interface
978- `watch` is now a subcommand, not a flag.
979
980DSL changes:
981
982- `BeforeSuite` and `AfterSuite` for setting up and tearing down test suites.
983- `AfterSuite` is triggered on interrupt (`^C`) as well as exit.
984- `SynchronizedBeforeSuite` and `SynchronizedAfterSuite` for setting up and tearing down singleton resources across parallel nodes.
985
986CLI changes:
987
988- `watch` is now a subcommand, not a flag
989- `--nodot` flag can be passed to `ginkgo generate` and `ginkgo bootstrap` to avoid dot imports. This explicitly imports all exported identifiers in Ginkgo and Gomega. Refreshing this list can be done by running `ginkgo nodot`
990- Additional arguments can be passed to specs. Pass them after the `--` separator
991- `--skipPackage` flag takes a regexp and ignores any packages with package names passing said regexp.
992- `--trace` flag prints out full stack traces when errors occur, not just the line at which the error occurs.
993
994Misc:
995
996- Start using semantic versioning
997- Start maintaining changelog
998
999Major refactor:
1000
1001- Pull out Ginkgo's internal to `internal`
1002- Rename `example` everywhere to `spec`
1003- Much more!
View as plain text