Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@serenity-js/cucumber

serenity-js108.3kApache-2.03.35.2TypeScript support: included

Serenity/JS test runner adapter for seamless integration with any version of Cucumber.js, facilitating BDD-style test automation and leveraging Serenity/JS reporting capabilities

automation, integration, serenity, serenity-js, screenplay, screenplay-pattern, runner, cucumber, tdd, bdd, test, testing

readme

Serenity/JS

Follow Serenity/JS on LinkedIn Watch Serenity/JS on YouTube Join Serenity/JS Community Chat Support Serenity/JS on GitHub

Serenity/JS is an innovative open-source framework designed to make acceptance and regression testing of complex software systems faster, more collaborative and easier to scale.

⭐️ Get started with Serenity/JS!

👋 Join the Serenity/JS Community!

Serenity/JS Cucumber

@serenity-js/cucumber contains a set of adapters you register with Cucumber CLI runners to enable integration and reporting between Cucumber.js and Serenity/JS.

Please note: To use Cucumber and Serenity/JS to execute web-based acceptance tests, you should register Serenity/JS Cucumber adapter using Protractor configuration file.

Learn more about integrating Serenity/JS Cucumber:

Installation

To install this module, run:

npm install --save-dev @serenity-js/cucumber @serenity-js/core

This module reports test scenarios executed by any version of Cucumber.js, from 0.x to 9.x, which you need to install separately.

To install Cucumber 9.x, run:

npm install --save-dev @cucumber/cucumber 

To install Cucumber 6.x or earlier, run:

npm install --save-dev cucumber 

Command line usage

Cucumber 7.x and newer

cucumber-js --format @serenity-js/cucumber \
    --require ./features/support/setup.js \
    --require ./features/step_definitions/sample.steps.js 
'--format-options', `{ "specDirectory": "${ path.resolve(__dirname, '../../cucumber-specs/features') }" }`,

Cucumber 3.x to 6.x

cucumber-js --format node_modules/@serenity-js/cucumber \
    --require ./features/support/setup.js \
    --require ./features/step_definitions/sample.steps.js 

Cucumber 0.x to 2.x

cucumber-js --require=node_modules/@serenity-js/cucumber/lib/index.js \
    --require ./features/support/setup.js \
    --require ./features/step_definitions/sample.steps.js 

Configuration

When used with a configuration file written in JavaScript:

// features/support/setup.js

const { configure } = require('@serenity-js/core')

configure({
    // ... configure Serenity/JS 
})

When used with a configuration file written in TypeScript:

// features/support/setup.ts

import { configure } from '@serenity-js/core'

configure({
    // ... configure Serenity/JS 
})

Integration

This module can be integrated with:

Learn more about Serenity/JS modular architecture.

📣 Stay up to date

New features, tutorials, and demos are coming soon! Follow Serenity/JS on LinkedIn, subscribe to Serenity/JS channel on YouTube and join the Serenity/JS Community Chat to stay up to date! Please also make sure to star ⭐️ Serenity/JS on GitHub to help others discover the framework!

Follow Serenity/JS on LinkedIn Watch Serenity/JS on YouTube Join Serenity/JS Community Chat GitHub stars

💛 Support Serenity/JS

If you appreciate all the effort that goes into making sophisticated tools easy to work with, please support our work and become a Serenity/JS GitHub Sponsor today!

GitHub Sponsors

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

3.35.2 (2025-10-06)

Bug Fixes

  • deps: update dependency typescript to v5.9.3 (fb0bbf6)

3.35.1 (2025-09-28)

Note: Version bump only for package @serenity-js/cucumber

3.35.0 (2025-09-07)

Note: Version bump only for package @serenity-js/cucumber

3.34.2 (2025-09-07)

Bug Fixes

  • deps: update dependency @cucumber/cucumber to v12.2.0 (0162244)

3.34.1 (2025-08-20)

Bug Fixes

  • deps: update dependency tiny-types to v1.24.1 (14c705a)

3.34.0 (2025-08-01)

Bug Fixes

  • deps: update dependency typescript to v5.9.2 (8a40483)

3.33.1 (2025-07-28)

Note: Version bump only for package @serenity-js/cucumber

3.33.0 (2025-07-28)

Features

  • cucumber: support for Cucumber 12 (61c84a6)

3.32.5 (2025-07-28)

Note: Version bump only for package @serenity-js/cucumber

3.32.4 (2025-07-13)

Bug Fixes

  • core: removed unnecessary tsconfig files from build artifacts (6e4d4fa)

3.32.3 (2025-07-07)

Bug Fixes

  • core: remove dependency on cuid2 from the FileSystem class (26ad2a3)
  • core: use 'node:' prefix for core node module imports (b1775d5)

3.32.2 (2025-06-21)

Note: Version bump only for package @serenity-js/cucumber

3.32.1 (2025-06-20)

Note: Version bump only for package @serenity-js/cucumber

3.32.0 (2025-06-20)

Note: Version bump only for package @serenity-js/cucumber

3.31.17 (2025-06-16)

Note: Version bump only for package @serenity-js/cucumber

3.31.16 (2025-06-05)

Bug Fixes

  • deps: update dependency @cucumber/cucumber to v11.3.0 (4bc35ed)

3.31.15 (2025-05-06)

Note: Version bump only for package @serenity-js/cucumber

3.31.14 (2025-04-28)

Bug Fixes

  • deps: update dependency typescript to v5.8.3 (b19c09b)

3.31.13 (2025-03-20)

Note: Version bump only for package @serenity-js/cucumber

3.31.12 (2025-03-12)

Note: Version bump only for package @serenity-js/cucumber

3.31.10 (2025-03-05)

Bug Fixes

  • deps: update dependency typescript to v5.8.2 (228c7fd)

3.31.9 (2025-02-20)

Note: Version bump only for package @serenity-js/cucumber

3.31.8 (2025-02-04)

Note: Version bump only for package @serenity-js/cucumber

3.31.7 (2025-01-24)

Note: Version bump only for package @serenity-js/cucumber

3.31.6 (2025-01-16)

Note: Version bump only for package @serenity-js/cucumber

3.31.5 (2025-01-11)

Bug Fixes

  • deps: update dependency @cucumber/cucumber to v11.2.0 (74be0e6)
  • deps: update dependency typescript to v5.7.3 (cd87dd8)

3.31.4 (2025-01-01)

Note: Version bump only for package @serenity-js/cucumber

3.31.3 (2025-01-01)

Bug Fixes

3.31.2 (2024-12-26)

Note: Version bump only for package @serenity-js/cucumber

3.31.1 (2024-12-17)

Bug Fixes

3.31.0 (2024-12-12)

Note: Version bump only for package @serenity-js/cucumber

3.30.0 (2024-11-19)

Note: Version bump only for package @serenity-js/cucumber

3.29.5 (2024-11-03)

Note: Version bump only for package @serenity-js/cucumber

3.29.4 (2024-10-08)

Note: Version bump only for package @serenity-js/cucumber

3.29.3 (2024-10-08)

Note: Version bump only for package @serenity-js/cucumber

3.29.2 (2024-09-25)

Note: Version bump only for package @serenity-js/cucumber

3.29.1 (2024-09-24)

Note: Version bump only for package @serenity-js/cucumber

3.29.0 (2024-09-24)

Note: Version bump only for package @serenity-js/cucumber

3.28.0 (2024-09-11)

Bug Fixes

  • cucumber: upgraded to Cucumber Messages 26.0.0 (6099a02)

Features

  • cucumber: support for Cucumber 11 (4c7b881)

3.27.0 (2024-09-06)

Bug Fixes

  • core: updated npm tags to improve discoverability (432d331)

Features

  • core: added support for Node 22, dropped support for Node 16 (d5dea01), closes #2518

3.26.1 (2024-09-03)

Note: Version bump only for package @serenity-js/cucumber

3.26.0 (2024-08-27)

Note: Version bump only for package @serenity-js/cucumber

3.25.5 (2024-08-18)

Bug Fixes

  • cucumber: support for Cucumber.js 10.9.0 (6c9ba70)
  • deps: update dependency tiny-types to v1.23.0 (1c9a897)

3.25.4 (2024-08-07)

Note: Version bump only for package @serenity-js/cucumber

3.25.3 (2024-07-25)

Note: Version bump only for package @serenity-js/cucumber

3.25.2 (2024-07-17)

Note: Version bump only for package @serenity-js/cucumber

3.25.1 (2024-07-10)

Bug Fixes

  • core: all the API docs now link to the online Serenity/JS API documentation (f8f451d)

3.25.0 (2024-07-03)

Note: Version bump only for package @serenity-js/cucumber

3.24.1 (2024-06-26)

Note: Version bump only for package @serenity-js/cucumber

3.24.0 (2024-06-18)

Bug Fixes

  • cucumber: support for Cucumber 10.8.0 (689f4c8), closes #2140

3.23.2 (2024-05-24)

Note: Version bump only for package @serenity-js/cucumber

3.23.1 (2024-05-20)

Note: Version bump only for package @serenity-js/cucumber

3.23.0 (2024-05-12)

Note: Version bump only for package @serenity-js/cucumber

3.22.4 (2024-05-07)

Note: Version bump only for package @serenity-js/cucumber

3.22.3 (2024-05-01)

Note: Version bump only for package @serenity-js/cucumber

3.22.2 (2024-04-20)

Note: Version bump only for package @serenity-js/cucumber

3.22.1 (2024-04-17)

Note: Version bump only for package @serenity-js/cucumber

3.22.0 (2024-04-11)

Bug Fixes

  • cucumber: support for Cucumber 10.4.0 (3aff921)
  • cucumber: updated cucumber/messages to 24.1.0 (1ea098b)

3.21.2 (2024-03-31)

Note: Version bump only for package @serenity-js/cucumber

3.21.1 (2024-03-16)

Bug Fixes

  • core: upgraded dependency on tiny-types to 1.22.0 (2c0bb2a)

3.21.0 (2024-03-04)

Note: Version bump only for package @serenity-js/cucumber

3.20.0 (2024-03-02)

Note: Version bump only for package @serenity-js/cucumber

3.19.0 (2024-03-01)

Note: Version bump only for package @serenity-js/cucumber

3.18.1 (2024-02-23)

Note: Version bump only for package @serenity-js/cucumber

3.18.0 (2024-02-17)

Note: Version bump only for package @serenity-js/cucumber

3.17.0 (2024-02-10)

Note: Version bump only for package @serenity-js/cucumber

3.16.2 (2024-02-05)

Note: Version bump only for package @serenity-js/cucumber

3.16.1 (2024-02-03)

Bug Fixes

  • core: build with TypeScript 5.2 (2f261ee)

3.16.0 (2024-02-01)

Bug Fixes

  • cucumber: ensure Cucumber adapter emits events with absolute file paths (f93d9cc)
  • cucumber: support for Cucumber 10.3.1 (8f41a03)

Features

  • cucumber: support for nested requirements reporting (40f8842)
  • cucumber: support for nested requirements reporting (2d0b885)

3.15.1 (2024-01-19)

Note: Version bump only for package @serenity-js/cucumber

3.15.0 (2024-01-12)

Bug Fixes

  • cucumber: upgraded Cucumber to 10.2.1 (2665c4a)

3.14.2 (2023-12-12)

Note: Version bump only for package @serenity-js/cucumber

3.14.1 (2023-12-10)

Bug Fixes

  • core: added provenance statements (04c2d87)
  • core: pinned all the direct dependencies (498b336)

3.14.0 (2023-12-02)

Features

  • core: nested error cause is now added to the main error message (815c8ce), closes #1823
  • cucumber: support for ESNext modules (ba1f225), closes #2097

3.13.3 (2023-11-22)

Note: Version bump only for package @serenity-js/cucumber

3.13.2 (2023-11-14)

Bug Fixes

  • cucumber: resolve paths to "imports" as absolute file URLs (fc9aefc), closes #2060

3.13.1 (2023-11-07)

Bug Fixes

  • deps: update dependency tiny-types to ^1.21.0 (d4921f9)

3.13.0 (2023-10-19)

Bug Fixes

  • cucumber: updated Cucumber Messages to v22 (b305860)

Features

  • cucumber: support for Cucumber 10 (adb3ee5)

3.12.0 (2023-10-09)

Note: Version bump only for package @serenity-js/cucumber

3.11.1 (2023-10-04)

Note: Version bump only for package @serenity-js/cucumber

3.11.0 (2023-10-03)

Note: Version bump only for package @serenity-js/cucumber

3.10.4 (2023-09-22)

Note: Version bump only for package @serenity-js/cucumber

3.10.3 (2023-09-15)

Note: Version bump only for package @serenity-js/cucumber

3.10.2 (2023-09-10)

Bug Fixes

  • core: updated installation instruction in the README (ec3f277), closes #1915
  • cucumber: removed publishQuiet config option as it's been removed from Cucumber (5a880ce)

3.10.1 (2023-09-01)

Note: Version bump only for package @serenity-js/cucumber

3.10.0 (2023-08-23)

Note: Version bump only for package @serenity-js/cucumber

3.9.1 (2023-08-18)

Note: Version bump only for package @serenity-js/cucumber

3.9.0 (2023-08-04)

Note: Version bump only for package @serenity-js/cucumber

3.8.0 (2023-08-01)

Note: Version bump only for package @serenity-js/cucumber

3.7.2 (2023-07-26)

Note: Version bump only for package @serenity-js/cucumber

3.7.1 (2023-07-22)

Note: Version bump only for package @serenity-js/cucumber

3.7.0 (2023-07-20)

Note: Version bump only for package @serenity-js/cucumber

3.6.1 (2023-07-11)

Note: Version bump only for package @serenity-js/cucumber

3.6.0 (2023-07-11)

Bug Fixes

  • deps: update dependency tiny-types to ^1.20.0 (6d7bf43)

3.5.0 (2023-07-02)

Bug Fixes

  • core: code clean-up: use type-only TypeScript imports where possible (aa49150)

3.4.2 (2023-06-30)

Note: Version bump only for package @serenity-js/cucumber

3.4.1 (2023-06-23)

Note: Version bump only for package @serenity-js/cucumber

3.4.0 (2023-06-10)

Features

  • core: compile Serenity/JS against ES2021 (6b31184)

3.3.1 (2023-06-08)

Note: Version bump only for package @serenity-js/cucumber

3.3.0 (2023-06-01)

Note: Version bump only for package @serenity-js/cucumber

3.2.1 (2023-05-15)

Note: Version bump only for package @serenity-js/cucumber

3.2.0 (2023-05-05)

Bug Fixes

  • core: use "types" instead of "typings" in package.json files (b83d922), closes #1682

Features

  • core: introduced support for Node.js 20, dropped support for Node.js 14 (491fef8), closes #1678

3.1.6 (2023-04-18)

Bug Fixes

  • webdriverio: upgraded to TypeScript 5 and WebdriverIO 7.31.1 (15b1ba7), closes #1558 #1651

3.1.5 (2023-04-18)

Bug Fixes

3.1.3 (2023-04-14)

Note: Version bump only for package @serenity-js/cucumber

3.1.2 (2023-04-07)

Note: Version bump only for package @serenity-js/cucumber

3.1.1 (2023-04-05)

Note: Version bump only for package @serenity-js/cucumber

3.1.0 (2023-04-02)

Features

3.0.1 (2023-03-25)

Note: Version bump only for package @serenity-js/cucumber

3.0.0 (2023-03-23)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.45 (2023-03-22)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.44 (2023-03-19)

Bug Fixes

  • core: moved time-related code to a common package (f29fedc), closes #1522
  • core: support for NPM 9 (0493474)
  • deps: update dependency tiny-types to ^1.19.1 (ce335eb)

3.0.0-rc.43 (2023-03-10)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.42 (2023-02-12)

Bug Fixes

  • core: event TestRunFinished now incidates the Outcome of the test suite (a941056), closes #1495

3.0.0-rc.41 (2023-02-07)

Features

  • core: better assertion errors reporting in Visual Studio Code (3b94b7d), closes #1486
  • core: new ability to RaiseErrors (4617d39), closes #1102

3.0.0-rc.40 (2023-01-06)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.39 (2023-01-05)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.38 (2022-12-28)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.37 (2022-12-18)

Features

  • cucumber: support reporting named hooks (426f68d), closes #1416

3.0.0-rc.36 (2022-11-28)

Features

  • cucumber: support for Cucumber 8.9.0 (67dcc71)

3.0.0-rc.35 (2022-11-25)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.34 (2022-11-21)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.33 (2022-11-07)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.32 (2022-10-12)

Bug Fixes

  • cucumber: refactored Cucumber event emitters to simplify the implementation (b7a5d25)

3.0.0-rc.31 (2022-10-07)

Bug Fixes

  • deps: update dependency cli-table3 to ^0.6.3 (062b991)

3.0.0-rc.30 (2022-10-05)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.29 (2022-10-01)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.28 (2022-09-30)

Bug Fixes

  • core: activity is now able to detect invocation location on Node 14 (41f4776), closes #1240
  • core: simplified SceneFinishes event (9ad947a), closes #1240

Features

  • playwright-test: improved Playwright Test reports (6c6b537), closes #1240

3.0.0-rc.27 (2022-08-26)

Bug Fixes

  • cucumber: support for Cucumber 8.5.2 (1e0763e)

3.0.0-rc.26 (2022-08-15)

Note: Version bump only for package @serenity-js/cucumber

3.0.0-rc.25 (2022-08-15)

Bug Fixes

  • core: extracted common TypeScript configuration (0108370)
  • deps: updated TinyTypes to 1.19.0 (f6d53e4)

3.0.0-rc.24 (2022-07-23)

Bug Fixes

  • cucumber: updated @cucumber/messages (9d970d0)

Features

3.0.0-rc.23 (2022-07-19)

Bug Fixes

3.0.0-rc.22 (2022-07-15)

3.0.0-rc.21 (2022-07-11)

3.0.0-rc.20 (2022-07-11)

3.0.0-rc.19 (2022-06-11)

3.0.0-rc.18 (2022-06-06)

Bug Fixes

  • deps: updated tiny-types (f1951cf)
  • deps: updated tiny-types to 1.18.2 (83a651c)

3.0.0-rc.17 (2022-06-02)

3.0.0-rc.16 (2022-04-15)

3.0.0-rc.15 (2022-04-10)

3.0.0-rc.14 (2022-03-28)

3.0.0-rc.13 (2022-03-02)

3.0.0-rc.12 (2022-02-23)

3.0.0-rc.11 (2022-02-13)

3.0.0-rc.10 (2022-02-03)

3.0.0-rc.9 (2022-02-01)

3.0.0-rc.8 (2022-01-28)

3.0.0-rc.7 (2022-01-28)

Bug Fixes

3.0.0-rc.6 (2022-01-10)

3.0.0-rc.5 (2022-01-07)

3.0.0-rc.4 (2021-12-30)

3.0.0-rc.3 (2021-12-29)

Bug Fixes

  • deps: updated tiny-types to 1.17.0 (3187051)

3.0.0-rc.2 (2021-12-09)

3.0.0-rc.1 (2021-12-09)

3.0.0-rc.0 (2021-12-08)

Bug Fixes

  • core: 3.0 RC (469d54e), closes #805
  • cucumber: support for recognising non-Serenity AssertionErrors in older version of Cucumber (31e9e99)

BREAKING CHANGES

  • core: Introduced @serenity-js/web - a shared library for Serenity/JS Web integration modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.