Ginkgo is a behavior-driven development testing framework, assertion library, and test runner for Go. It provides a domain-specific language for writing human-readable specifications, organizing tests into hierarchical containers and subjects to describe system behavior.
The project distinguishes itself through advanced execution control and observability, featuring a test runner capable of parallel distribution, sharding, and randomized execution order to detect flaky tests. It includes specialized diagnostic tools for goroutine leak detection, hanging spec monitoring, and failure state debugging.
The framework covers a broad range of testing capabilities, including asynchronous system validation with polling and timeouts, complex data structure assertions, and comprehensive lifecycle management for nested setup and teardown. It also provides automation for test filtering via labels or descriptions and the generation of machine-readable reports.
The test suite can be precompiled into a standalone binary for faster execution and distribution.