Cucumber.js
cucumber.io
What it is
Cucumber.js checks software against executable specifications written as plain-text scenarios, reporting whether each scenario passes or fails. It is the JavaScript implementation of Cucumber and runs on Node.js. Scenarios use Gherkin syntax and are usually kept in `.feature` files alongside the software in source control. Step definitions connect each Gherkin step to code that carries out its described action; expressions can use Cucumber Expressions or regular expressions, but not both syntaxes in a single expression.
The tool runs feature files from the command line and can run in continuous integration, including parallel execution. Reporter plugins can produce results, and reports can be published to Cucumber Reports with `--publish`. Published reports are public and deleted after 24 hours. Cucumber.js is available as the `@cucumber/cucumber` npm module, installed as a development dependency with npm or Yarn. The setup requires Node.js and one of those package managers. It is free and open source, with Linux, macOS, Windows, and self-hosted platforms listed. It works with browser automation tools, but is not itself one.
Spec sheet
- Purpose
- Cucumber reads executable specifications written in plain text and checks whether software conforms to them, reporting success or failure for each scenario.Read 4 Oct 2026 · cucumber.io
- Audience
- The project says thousands of companies rely on Cucumber tests to validate their software.Read 4 Oct 2026 · cucumber.io
- Integrations
- Cucumber says it is not a browser automation tool, but works with browser automation tools such as Selenium WebDriver.Read 4 Oct 2026 · cucumber.io
- Security
- The project says it has a security policy that explains how to contact maintainers about security issues.Read 4 Oct 2026 · cucumber.io
- Support
- The FAQ directs users with questions to the Cucumber community and lists Cucumber School online training for deeper learning.Read 4 Oct 2026 · cucumber.io
- BDD
- Cucumber supports Behaviour-Driven Development, a process built around discovery, collaboration and examples.Read 4 Oct 2026 · cucumber.io
- CI integration
- Cucumber can be run in continuous integration, and Cucumber Reports can include links to detected Git commits and CI runs.Read 4 Oct 2026 · reports.cucumber.io
- Command line
- Cucumber.js includes an executable for running feature files from the command line.Read 4 Oct 2026 · cucumber.io
- Expressions
- Step definitions can use Cucumber Expressions or regular expressions, but the two syntaxes cannot be mixed in one expression.Read 4 Oct 2026 · cucumber.io
- Gherkin
- Cucumber scenarios use Gherkin syntax, and feature files are typically stored in source control alongside the software.Read 4 Oct 2026 · cucumber.io
- Global install limitation
- Cucumber does not work when installed globally because globally installed modules cannot be imported or required in support files.Read 4 Oct 2026 · cucumber.io
- Installation
- The documentation shows installing `@cucumber/cucumber` as a development dependency with npm or Yarn.Read 4 Oct 2026 · cucumber.io
- JavaScript install
- Cucumber.js is available as the @cucumber/cucumber npm module and can also be installed with Yarn as a development dependency.Read 4 Oct 2026 · cucumber.io
- Language
- Cucumber.js is the JavaScript implementation of Cucumber and is available as an npm module for Node.js.Read 4 Oct 2026 · cucumber.io
- Maintainer status
- The project describes @cucumber/cucumber as the stable canonical JavaScript implementation, while @cucumber/node is pre-1.0.0 and may change.Read 4 Oct 2026 · cucumber.io
- Prerequisites
- The JavaScript setup instructions require Node.js and either npm or Yarn.Read 4 Oct 2026 · cucumber.io
- Project ownership
- Cucumber says its intellectual property assets transitioned from SmartBear Software to the Open Source Collective in December 2024.Read 4 Oct 2026 · cucumber.io
- Report data
- The Cucumber Reports service states that published report data is stored in US data centers and encrypted at rest.Read 4 Oct 2026 · reports.cucumber.io
- Report privacy
- Published Cucumber Reports are available at public URLs without authentication and are automatically deleted after at least 24 hours.Read 4 Oct 2026 · reports.cucumber.io
- Report publishing
- Publishing to Cucumber Reports is supported by Cucumber-JS version 7.0.0 and above.Read 4 Oct 2026 · cucumber.io
- Reporting
- Cucumber uses reporter plugins to produce reports showing which scenarios passed or failed, including built-in, separately installed, and custom plugins.Read 4 Oct 2026 · cucumber.io
- Reports
- Cucumber.js supports publishing reports with the --publish option from version 7.3.0.Read 4 Oct 2026 · reports.cucumber.io
- Security guidance
- Cucumber advises users not to define environment variables containing secrets globally.Read 4 Oct 2026 · cucumber.io
- Specifications
- Cucumber scenarios are written in Gherkin, a structured plain text format stored in `.feature` files.Read 4 Oct 2026 · cucumber.io
- Step definitions
- Step definitions connect Gherkin steps to programming code that performs the described actions.Read 4 Oct 2026 · cucumber.io
Plans and prices
Strong points and limits
Strong points
- Free, open-source JavaScript implementation.
- Runs feature files from the command line.
- Supports continuous integration and parallel execution.
- Reporter plugins can show scenario results.
- Works with browser automation tools such as Selenium WebDriver.
Limits
- Requires Node.js and npm or Yarn.
- Global installation does not work with support-file imports.
- Published reports are public for up to 24 hours.
- Not itself a browser automation tool.
Who it suits
Cucumber.js suits JavaScript teams using Gherkin scenarios to specify and check software behaviour. It can also suit teams running these checks in continuous integration or alongside browser automation tools.
Verdict
Cucumber.js provides a structured way for JavaScript teams to express scenarios and check software against them. Installation must be local to the project, and published reports should not contain information intended to remain private.
Where Specifiction places it
- JavaScript Testing Frameworks#1 of 239.0
- Test Automation Software#5 of 458.8