Cucumber uses reporter plugins to produce reports that contain information about what scenarios have passed or failed.
Some plugins are built-in, others have to be installed separately. You can also build your own.
This page documents built-in formatter plugins, custom formatters and some common third-party plugins. Available plugins may vary per programming language.
Cucumber Reports Service
The easiest way to get started with reporting is to use the Cucumber Reports service.
Watch this video for a quick introduction or read the introductory blog post for more details.
Publishing to the Cucumber Reports service is currently supported in:
- Cucumber-JVM
6.7.0
and above - Cucumber-Ruby
5.1.1
and above - Cucumber-JS
7.0.0
and above
Built-in reporter plugins
If you don’t want to publish your reports to the Cucumber Reports service, you can generate local reports using one of the following built-in reporter plugins (also known as “formatters”):
message
progress
pretty
html
json
rerun
junit
testng
message
progress
pretty
html
json
rerun
junit
testng
message
html
json
progress
rerun
snippets
usage
junit
There is also a “pretty” formatter available as an optional module @cucumber/pretty-formatter.
message
progress
pretty
html
json
rerun
junit
Custom formatters
Cucumber implementations are extensible so that you can write and use your own formatter, or use a third-party one published by someone else. This involves creating a class that implements/extends the standard formatter interface.
Detailed documentation around how to use and write custom formatters in cucumber-js is available here:
Once you add your formatter class in the features/support
directory, you can reference it with the --format
flag:
cucumber --format MyModule::CustomFormatter
Once you add your formatter class, you can reference it with the --format
flag:
cucumber --format CustomFormatter
Once you add your formatter class, you can reference it with the --format
flag:
cucumber --format CustomFormatter
Formatter API
Cucumber uses an event-based API for its formatters. These formatters respond to several defined events, which are common across all official implementations under the Cucumber Messages standard.
Third-party plugins
There are also many third-party plugins:
- Masterthought
- TeamCity - prints Cucumber results in a format for interpretation by a TeamCity build agent.
- teamcity_formatter - Compatible with Cucumber 2.
- cucumber_teamcity - Tested with Cucumber 1.3.18 and TeamCity 8.x.
- TextmateFormatter prints Cucumber results as HTML with enhanced styling and Javascript for Textmate (Included in the Cucumber core since 0.4.5)
- SlowHandCuke - A tweak to the Pretty formatter to display the currently running Step as it is running
- timestamped-scenarios - Append test run timestamps to each Scenario name as it is being output.
- Fivemat - Cucumber formatter that gives each test file its own line of dots.
- Fuubar - The insta-failing progress bar formatter
- cucumber_timing_presenter - formatter that calculates timing metrics as well as two graphs showing impact of Step time on overall build time.
- ReportPortal.io adapter - agent for real-time reporting of CucumberJS tests into ReportPortal test-automation dashboard.
- Bilgerat - formatter that sends failure messages to HipChat rooms.
- cucumber_statistics - Tracks timing and displays results in a single HTML page with outliers highlighted in a table sortable by various metrics.
- cucumber_characteristics - Generates HTML/JSON reports on overall test timings, as well as timings and usage of Steps, Features, and Examples. Also lists unused and ambiguous (Cucumber 1.x) Steps. Compatible with Cucumber 1.x and 2.1+ and Ruby 1.9+.
- allure-cucumber - Allure adaptor for Cucumber. This formatter generates the XML files for Allure reporting framework.
- Cluecumber - Maven plugin for clear and concise Cucumber reporting.
- Cucelastic - Maven plugin to push test report data into Elastic Search to enable users to plugin UI agnostic tools like Kibana to visualize a dynamic and easy sharable report/dashboard with the possibility to filter and analyze the data, extend and share it across teams.
- cucumber-reporting-plugin - A Cucumber plugin which produces pretty HTML reports using cucumber-reporting
- Serenity/JS - An acceptance testing and reporting framework with in-depth HTML reports, Screenplay Pattern APIs, and support for every single version of Cucumber.js
- Lippia Test Manager - Lippia Test Manager combines the use of Gherkin to support manual and automated test runs using Cucumber. It allows users to write tests in the Gherkin language without needing an integrated development environment (IDE) and to store them in code repositories, eliminating the need for mapping between manual and automated scenarios since it utilizes the .feature files. See samples of ingesting automated tests results here: https://github.com/crowdar/