Top 23 BDD Open-Source Projects

  • GitHub repo mocha

    ☕️ simple, flexible, fun javascript test framework for node.js & the browser

    Project mention: Iniciar en el mundo del TESTING AUTOMATIZADO ✍ | | 2021-05-11
  • GitHub repo Catch

    A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later (or C++03 on the Catch1.x branch)

    Project mention: Presenting a C++ project on Github elegantly | | 2021-05-07
  • GitHub repo karma

    Spectacular Test Runner for JavaScript

  • GitHub repo Quick

    The Swift (and Objective-C) testing framework.

    Project mention: Mobile e2e tests using WebdriverIO and Appium | | 2021-02-28

    These tests are responsible for validating that a single unit is working properly. You can think of a unit as a class or function. These tests are written in an isolated fashion. I mean, if the rest of the system is full of bugs and nothing else work, if this unit work, the test will pass. They are also repeatable. They don't depend on anything else, really. Anytime you run the test, if the code hasn't changed, the test will report the same result. These tests are intimately related to the code quality of your project. If your code is clean, these tests should be relatively easy to write. When writing unit tests in iOS, you usually use XCTest or Quick

  • GitHub repo chai

    BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.

    Project mention: Unit testing async functions | | 2021-03-30

    For this example, I am using Mocha, plus Chai for its BDD expect syntax and the chai-as-promised plugin for asynchronous matchers.

  • GitHub repo Robot Framework

    Generic automation framework for acceptance testing and RPA

    Project mention: Robot Framework: generic OSS automation framework for test automation and RPA | | 2021-04-19
  • GitHub repo Codeception

    Full-stack testing PHP framework

  • GitHub repo Nimble

    A Matcher Framework for Swift and Objective-C

  • GitHub repo Behat

    BDD in PHP

    Project mention: 10 Of The Best PHP Testing Frameworks For 2021 | | 2021-02-17

    Step 3: If you don’t have a Composer, you can easily set up the framework by downloading the latest version of behat.phar.

  • GitHub repo Pester

    Pester is the ubiquitous test and mock framework for PowerShell.

    Project mention: Pester 5.2.0 is released! | | 2021-05-06

    A lot more info here in the release notes: Release 5.2.0 · pester/Pester (

  • GitHub repo Gauge

    Light weight cross-platform test automation

  • GitHub repo spek

    A specification framework for Kotlin

  • GitHub repo SpecFlow

    #1 .NET BDD Framework. SpecFlow automates your testing & works with your existing code. Find Bugs before they happen. Behavior Driven Development helps developers, testers, and business representatives to get a better understanding of their collaboration

  • GitHub repo godog

    Cucumber for golang

  • GitHub repo Kahlan

    :heavy_check_mark: PHP Test Framework for Freedom, Truth, and Justice

  • GitHub repo cli

    a lightweight, security focused, BDD test framework against terraform. (by terraform-compliance)

    Project mention: Azure terraform-compliance examples? | | 2021-05-07

    If you mean this then yes, it doesn't support modules if you use Terraform 0.11.x (or lower).

  • GitHub repo Aruba

    Test command-line applications with Cucumber-Ruby, RSpec or Minitest. The most up to date documentation can be found on Cucumber.Pro (

  • GitHub repo espec

    Elixir Behaviour Driven Development

  • GitHub repo Specs2

    Software Specifications for Scala

  • GitHub repo event-reduce

    An algorithm to optimize database queries that run multiple times

    Project mention: Show HN: EventReduce – Algorithm to optimise db queries that run multiple times | | 2021-04-21
  • GitHub repo ut

    UT: C++20 μ(micro)/Unit Testing Framework

    Project mention: Another C++ unit testing framework without macros | | 2021-04-16

    In Boost.UT there is a number of different styles to add a parametrized test case. All of them are pretty cryptic bue to heavy isage of oeverloaded operators of custom "non-public" classes. Except for the for-loop method, in all other methods the list of parameter values goes after the test procedure definition. I find this inconvenient, as I want to see list of parameter value next to the test name. This is what I used to from the times I was coding a lot of unit tests in C#.

  • GitHub repo shellspec

    A full-featured BDD unit testing framework for bash, ksh, zsh, dash and all POSIX shells

    Project mention: Bash_unit – bash unit testing framework | | 2021-03-02

    If you fancy more BDD-style testing with a Gherkin-like syntax, there is also Shellspec /

  • GitHub repo JGiven

    Behavior-Driven Development in plain Java

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-05-11.


What are some of the best open-source BDD projects? This list will help you:

Project Stars
1 mocha 20,476
2 Catch 13,396
3 karma 11,498
4 Quick 9,096
5 chai 7,238
6 Robot Framework 5,833
7 Codeception 4,284
8 Nimble 4,122
9 Behat 3,566
10 Pester 2,492
11 Gauge 2,483
12 spek 2,097
13 SpecFlow 1,711
14 godog 1,325
15 Kahlan 1,076
16 cli 961
17 Aruba 903
18 espec 732
19 Specs2 697
20 event-reduce 600
21 ut 550
22 shellspec 414
23 JGiven 329