Behave vs Ginkgo
Behave
behave.readthedocs.ioGinkgo
onsi.github.ioSide by side
| Figure | Behave | Ginkgo |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Plans published | 0 | 1 |
| Spec score · BDD Testing Tools | 7.8 (#9) | 8.2 (#7) |
| Integrations | The documentation includes integration guidance for Django and Flask and examples using Selenium for browser interaction. | Ginkgo exposes GinkgoT() and GinkgoTB() so many Go testing libraries, including Testify and Gomock, can be used with it. |
| Purpose | Behave is a Python-style behavior-driven development tool that runs tests written in a natural-language style backed by Python code. | Ginkgo is a testing framework for Go for writing expressive tests, including unit, integration, acceptance, and performance tests. |
Plans
In their own words
Behave
Behave has no write-up on Specifiction yet; its figures are above.
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.