CWT-Cucumber: A C++20 Cucumber Interpreter
CWT-Cucumber is a lightweight, modern C++20 BDD testing framework for native C++ projects. It interprets Gherkin feature files, allowing you to write test cases in plain language and define behavior-driven development (BDD) scenarios in C++:
Note
All examples shown in this documentation can be found in the examples directory of the GitHub repository.
Feature: Putting apples into a box
Scenario: Two apples
Given An empty box
When I place 2 x "apple" in it
Then The box contains 2 item(s)
Originally started as a personal learning project, CWT-Cucumber has grown into a production-ready tool, now used by teams in real-world applications. Over this journey, it has become more robust and provides a full suite of BDD capabilities for modern C++ projects.
It is written in pure C++20 with no mandatory dependencies and supports Scenario, Scenario Outline, Background, Rules, Hooks, Doc Strings, Tables, and more.
Optionally, you can enable JSON reports by building it with nlohmann/json.
Get started quickly by following the Installation guide and implement your first steps.
Contents:
- Installation
- Cucumber Features
- Step Definitions
- Program Arguments
- Executing Single Scenarios
- Name Filter:
-n/--name - Tags:
-t/--tags - Quiet Mode:
-q/--quiet - Dry Run:
-d/--dry-run - Verbose:
-v/--verbose - Continue on Failure:
-c/--continue-on-failure - JSON Report:
--report-json - Steps Catalog:
--steps-catalog [file]/--steps-catalog-json [file] - Exclude File:
--exclude-file
- Build Options & Environment Variables
- API Documentation