← All tools

figueiredoluiz/cuke-dedup

Popularity 65 Updated Development & Build

Fast static analysis for duplicate, ambiguous, and unused Cucumber step definitions.

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

CukeDedup

CukeDedup is a fast static analyzer for duplicate, ambiguous, reusable, and unused Cucumber/Gherkin step definitions. It reads project configuration and test code without executing either one.

It supports:

  • JavaScript, JSX, TypeScript, and TSX step definitions.
  • Cucumber.js, Playwright-BDD, and Cypress Cucumber projects.
  • Classic .feature files and Gherkin Markdown .feature.md files.
  • Terminal, JSON, JSON Lines, HTML, and SARIF reports.
  • Thresholds, baselines, changed-file analysis, suppressions, and ignore files.

Install

With Cargo:

cargo install cuke-dedup

Or in a JavaScript project, using Node.js 24 LTS (recommended):

npm install --save-dev cuke-dedup
npx cuke-dedup .

Building from source requires Rust 1.90 or newer:

cargo build --release --locked

Quick start

Run CukeDedup from the root of a test project:

cuke-dedup .

No configuration is required. CukeDedup respects .gitignore and .cuke-dedupignore, skips common generated directories, discovers conventional Gherkin and JavaScript/TypeScript files, and recognizes common Given, When, Then, and defineStep registrations and aliases.

Useful commands:

cuke-dedup . --threshold 5
cuke-dedup . --print-config
cuke-dedup . --reporters terminal,json,html,sarif
cuke-dedup . --reporters jsonl
cuke-dedup . --output reports/cuke-dedup

cuke-dedup check . is equivalent to cuke-dedup .. The explicit check form requires a path; use cuke-dedup ./check to analyze a directory literally named check.