cucumber

cucumber/cucumber-js

TypeScript MIT Dev Tools

Cucumber for JavaScript

5.4k stars
1.1k forks
active
GitHub +7 / week

5.4k

Stars

1.1k

Forks

42

Open issues

30

Contributors

v13.0.0 02 Jun 2026

AI Analysis

Cucumber.js is the JavaScript/Node.js implementation of Cucumber, a behavior-driven development (BDD) testing framework that lets teams write automated tests in plain language (Gherkin). It serves development teams seeking to bridge communication gaps between technical and non-technical stakeholders by making test specifications readable to anyone. It is specialized for teams adopting BDD practices—not a general-purpose testing framework like Jest or Mocha, but a complement to them for specif...

Dev Tools Testing Tool Discovery value: 2/10
Documentation 8/10
Activity 9/10
Community 8/10
Code quality 8/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

bdd-testing gherkin behavior-driven-development test-automation nodejs
Actively maintained Well documented MIT licensed Niche/specialized use case Beginner friendly Production ready
Deep Analysis · Based on README and public signals
2w ago

Cucumber-JS brings Gherkin-based BDD testing to Node.js with 15 years of production history

Cucumber-JS is the JavaScript/Node.js implementation of the Cucumber BDD framework, enabling teams to write automated tests in plain Gherkin language readable by non-technical stakeholders. It targets teams practicing Behavior-Driven Development where product owners, QA, and developers collaborate on living documentation. With over 5,300 stars, active CI pipelines, and an npm package (@cucumber/cucumber) downloaded millions of times weekly, it occupies a well-defined niche in the JavaScript testing ecosystem. It is not a general-purpose test runner but a specialized tool for teams that value human-readable test specifications.

Origin

Created in May 2011 as a JavaScript port of the Ruby Cucumber framework, the project has been continuously maintained for over 15 years. It migrated to the @cucumber npm scope and TypeScript over time, reflecting ongoing modernization of the codebase.

Growth

Growth was driven primarily by enterprise and agile-shop adoption of BDD practices throughout the 2010s. The project has largely plateaued in star growth — 2 stars in the last 7 days — consistent with mature, stable infrastructure tooling rather than a trending project. npm download numbers likely far exceed what GitHub star velocity suggests, as it serves entrenched enterprise workflows.

In production

The @cucumber/cucumber npm package is one of the most downloaded BDD-related packages in the Node.js ecosystem, with millions of weekly downloads documented historically. It is widely referenced in enterprise JavaScript testing stacks and integrated into many CI pipelines. Adoption is well-established and broadly verified through npm download data and ecosystem references.

Code analysis
Architecture

Appears to be a CLI-first tool with a programmatic JavaScript API layer. Likely consists of a Gherkin parser, step definition registry, runner engine, and formatter/reporter subsystem. The README documents parallel running, sharding, retry logic, plugin support, and ESM compatibility — suggesting a modular, feature-complete architecture. TypeScript implementation likely provides strong internal type safety.

Tests

A Coveralls badge is present in the README, indicating CI-tracked code coverage. The exact coverage percentage is not stated in the README excerpt, but its presence suggests active tracking.

Maintenance

Last push was June 24, 2026 — 3 days before the evaluation date — indicating active, ongoing maintenance. The project has operational CI/CD workflows for build and npm release. An OpenSSF Scorecard badge is present, suggesting security-conscious maintenance practices. This is a well-maintained project by any standard.

Honest verdict

ADOPT IF: your team practices BDD with non-technical stakeholders writing or reviewing Gherkin feature files, and you want a mature, actively maintained framework with a large support community in the Node.js ecosystem. AVOID IF: your team has no interest in Gherkin or BDD workflows — the overhead of maintaining feature files does not justify the tool for pure unit or integration testing. MONITOR IF: you are evaluating BDD practices for your team for the first time; the tooling is stable, but BDD process adoption is the real risk, not the software itself.

Independent dimensions

Mainstream potential

4/10

Technical importance

7/10

Adoption evidence

8/10

Risks
  • BDD adoption risk: the tool's value depends entirely on the team actually following BDD practices; if feature files diverge from real behavior or are maintained only by developers, the collaboration benefit disappears.
  • Learning curve for step definition management: large test suites can accumulate complex, fragile step definition patterns that are hard to refactor.
  • Slower test execution: Gherkin parsing and scenario orchestration add overhead compared to plain unit test runners; parallel/sharding support mitigates this but adds configuration complexity.
  • Ecosystem fragmentation: integrations with specific browsers, HTTP clients, or assertion libraries require additional glue libraries that may lag behind their primary tools.
  • Niche ceiling: the project is unlikely to expand beyond BDD-focused teams, meaning community size and third-party tooling will remain smaller than general-purpose test runners.
Prediction

Cucumber-JS will remain a stable, maintained tool serving its BDD niche for the foreseeable future. Growth will be slow and tied to BDD methodology adoption rather than JavaScript ecosystem trends. No decline is expected.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

TypeScript
77.3%
Gherkin
22.1%
JavaScript
0.3%
Shell
0.2%
Awk
0%

Information

Language
TypeScript
License
MIT
Last updated
8h ago
Created
184mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

cucumber

cucumber/cucumber-jvm

Cucumber JVM is a BDD testing framework that allows developers to write...

2.8k Java Dev Tools
cucumber

cucumber/cucumber-ruby

Cucumber for Ruby enables automated testing through plain-language scenarios...

5.2k Ruby
jasmine

jasmine/jasmine

Jasmine is a behavior-driven development (BDD) testing framework for JavaScript...

15.8k JavaScript Dev Tools
cucumber

cucumber/godog

Godog is the official Cucumber BDD framework for Go, enabling behavior-driven...

2.6k Go Dev Tools
cypress-io

cypress-io/cypress

Cypress is a full-featured end-to-end and component testing framework for web...

50.5k TypeScript Dev Tools
vs. alternatives
Jest

Jest is a general-purpose test runner with no Gherkin/BDD support out of the box. Some teams use jest-cucumber to bridge them. Cucumber-JS serves a fundamentally different workflow — specification-first, stakeholder-readable tests — not a direct replacement in either direction.

Cypress

Cypress is an end-to-end browser testing tool. There are Cucumber-Cypress integrations, but they target different layers. Cypress does not natively support Gherkin. The two are often complementary rather than competing.

Jasmine

Jasmine is a BDD-flavored unit test framework with describe/it syntax. It does not support Gherkin or plain-language scenarios. Cucumber-JS is better suited for cross-functional collaboration where non-engineers write or read test specs.

Playwright

Playwright is a browser automation framework. It can be combined with Cucumber-JS for BDD-style e2e tests, but does not natively offer Gherkin. Cucumber-JS is frequently layered on top of Playwright in enterprise e2e setups.

cucumber/cucumber-ruby

The Ruby original that cucumber-js mirrors in philosophy. Feature parity is close but not identical. Teams in Node.js ecosystems use cucumber-js; the Ruby version remains dominant in Rails-based stacks. Both are maintained under the same umbrella org.