onsi/ginkgo

A Modern Testing Framework for Go

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 25 minutes ago
Added to GitGenius on September 7th, 2026
Created on August 23rd, 2013
Open Issues & Pull Requests: 125 (+0)
GitHub issues: Enabled
Number of forks: 706
Total Stargazers: 9,051 (+0)
Total Subscribers: 104 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

Ginkgo is a testing framework for Go that brings Behavior-Driven Development style testing to the language through an expressive Domain-Specific Language.

Ginkgo solves the problem of writing clear, intent-driven test specifications in Go by layering a BDD-style DSL on top of Go's standard testing foundation. It works by providing nestable container nodes like Describe, Context, and When to organize specs hierarchically, setup and cleanup nodes like BeforeEach and AfterEach, and subject nodes like It and Specify that hold assertions. The framework is complemented by Gomega, a matcher library that lets developers express test intent clearly. At runtime, Ginkgo can randomize spec execution order for better test isolation and supports sophisticated parallelization, allowing even large integration suites to run efficiently across multiple processes while managing cleanup and timeouts through per-node context.Context objects.

Developers accustomed to BDD frameworks from other languages—Quick, RSpec, Jasmine, or Busted—will find Ginkgo's syntax familiar. The tool suits projects ranging from basic unit tests to complex integration and performance specs. As test suites grow, Ginkgo provides labels for organizing specs and filtering capabilities both programmatically and via command line, helping manage large test collections. The reporting infrastructure generates output in multiple machine-readable formats and supports building custom reporters.

The project maintains active engagement with its community through GitHub issues and a dedicated Slack channel. Development shows consistent attention to both core functionality and the practical needs of users running large test suites, with particular focus on parallelization patterns and cleanup reliability.