Ginkgo is a free, MIT-licensed testing framework for Go, designed for developers who want to write expressive specifications. Its BDD-style DSL uses nested Describe, Context, and When containers alongside setup, cleanup, and spec nodes. It can support unit, integration, and performance specs. Independent specs can run in parallel, and their order can be randomized reproducibly. The bundled ginkgo command can generate, run, filter, and profile suites, as well as watch for changes and rerun specs. Reporting can produce machine-readable output in multiple formats and can be customized. Ginkgo builds on Go’s testing foundation and is designed to pair with the Gomega matcher library. Its GinkgoT() and GinkgoTB() interfaces also allow use of many Go testing libraries, including Testify and Gomock. Documentation lists completions for Sublime Text and VS Code, plus a VS Code extension for running specs. The current supported major version is V2; V1 is no longer supported. Compatibility is guaranteed for Go versions supported under Go’s release policy, N and N−1.
Who it is for
Ginkgo suits Go developers who prefer a BDD-style specification structure and need parallel or randomized test execution. Its documentation describes the DSL as familiar to users of Quick, RSpec, Jasmine, and Busted.
What is good
- Supports unit, integration, and performance specs.
- Runs independent specs in parallel and randomized order.
- CLI can generate, filter, profile, and watch test suites.
- Machine-readable reporting supports multiple formats.
- Works with many Go testing libraries through its interfaces.
What to know first
- Ginkgo V1 is no longer supported.
- Ginkgo is designed to pair with Gomega for matchers.
- Fixes are not back-ported.
Verdict
Ginkgo offers a structured Go testing DSL, execution controls, and customizable reporting at no cost. Users should note that V2 is the supported major version and fixes are not back-ported.
Ginkgo plans and pricing
All plansCompared on BDD testing tools
- Free plan
- Yes
- Gherkin support
- Yes
- Execution mode
- local
- Parallel execution
- Yes
- API access
- Yes



