CheckOps home

Tools directory

G

CheckOps

Ginkgo

Ginkgo is an MIT-licensed BDD-style testing framework for Go with Describe/Context/It specs, parallel execution, focused and labelled specs and rich reporting, usually paired with the Gomega matcher library.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

Introduction

Ginkgo is a mature testing framework for Go designed to help you write expressive specs. It uses a nested, BDD-style structure of Describe, Context and It blocks, with setup through BeforeEach, JustBeforeEach and AfterEach. It is used widely in large Go projects, notably in the Kubernetes ecosystem for integration and end-to-end suites.

The ginkgo CLI runs suites with options such as parallel execution across processes (-p), randomised ordering, focused or skipped specs, labels for filtering (--label-filter), repeating and retrying flaky specs, timeouts and watch mode. Table-driven specs use DescribeTable and Entry. Ginkgo v2 adds structured reporting with JUnit XML and JSON output, progress reports for slow specs, and Ordered containers for specs that must run in sequence. It integrates with go test, and is designed to pair with Gomega for assertions. Version 2.34.0 was released on 2 November 2026.

The source code is at onsi/ginkgo on GitHub under the MIT licence, with about 9,100 stars; the most recent commit was on 2 November 2026.

Features

  1. Expressive specs: Describe/Context/It with rich setup hooks.
  2. Parallel runs: Run specs across processes with ginkgo -p.
  3. Labels and focus: Filter specs by label, focus or skip.
  4. Reporting: JUnit XML, JSON and progress reports.

Pros

  1. Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
  2. Actively maintained: The repository had commits as recent as 2 November 2026.
  3. Community: About 9,100 GitHub stars.

Cons

  1. Non-standard style: BDD nesting differs from idiomatic table-driven Go tests.
  2. Extra CLI: Best features need the ginkgo command.
go install github.com/onsi/ginkgo/v2/ginkgo@latest
ginkgo bootstrap
var _ = Describe("Cart", func() {
    var cart *Cart
    BeforeEach(func() { cart = NewCart() })

    It("starts empty", func() {
        Expect(cart.Items()).To(BeEmpty())
    })

    DescribeTable("discounts",
        func(price, pct, want int) { Expect(Apply(price, pct)).To(Equal(want)) },
        Entry("none", 100, 0, 100),
        Entry("ten percent", 100, 10, 90),
    )
})
ginkgo -p --label-filter=integration --junit-report=report.xml

Resources:

Pricing

Ginkgo is free and open source under the MIT licence.

  1. Go teams with large integration or E2E suites, such as Kubernetes operators.
  2. Developers who prefer BDD-style organisation.

Conclusion

Ginkgo is the leading BDD framework for Go, especially strong for large, parallel integration and end-to-end suites.

Alternatives

Other tools on CheckOps that cover similar ground. Open a page, or compare one with Ginkgo side by side.