Behat vs Ginkgo
Behat
behat.orgGinkgo
onsi.github.ioSide by side
| Figure | Behat | Ginkgo |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · BDD Testing Tools | 7.7 (#10) | 8.2 (#7) |
| Purpose | Behat is an open source behavior-driven development tool for writing executable software specifications in plain language. | Ginkgo is a testing framework for Go for writing expressive tests, including unit, integration, acceptance, and performance tests. |
| Testing scope | Feature files can describe whole application behavior and can be tested using browser automation, HTTP API calls, shell commands, databases, filesystems, or PHP code. | Ginkgo can be used for unit, integration, and performance specs. |
Plans
In their own words
Behat
Behat is free, open-source software for writing executable specifications in plain language on Linux. It is the PHP implementation of Cucumber and runs Gherkin feature files. Those files can describe complete application behavior and be exercised through browser automation, HTTP API calls, shell commands, databases, filesystems, or PHP code. Behat is intended to work with any PHP framework or without one. Installation uses Composer or a PHAR executable, both running with PHP. An extension system can expand or replace nearly any part of the tool, with extensions covering framework integrations, browser automation, test reporting, and data fixtures. Behat does not provide its own assertion tool, so an external assertion library is needed. It supports current PHP and third-party dependency versions; Symfony 8 support begins with Behat 4.0. Each major version receives security fixes for 24 months after the next major release.
Ginkgo
Ginkgo is a free, MIT-licensed testing framework for Go that helps developers write expressive specifications. Its BDD-style DSL uses nested Describe, Context, and When containers, along with setup, cleanup, and spec nodes. Developers can use it for unit, integration, and performance specs. Independent specs can run in parallel or in reproducibly randomized order. The bundled ginkgo command can generate, run, filter, and profile suites, and watch for changes to rerun specs. Reporting can produce machine-readable output in multiple formats and supports custom reporting infrastructure. 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 Go testing libraries such as 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. Ginkgo states compatibility with Go versions currently supported under Go’s release policy, N and N−1.