Skip to content

test(bdd): fail Rust BDD runner on undefined steps#3680

Open
seokjin0414 wants to merge 1 commit into
apache:masterfrom
seokjin0414:3634-bdd-strict-rust
Open

test(bdd): fail Rust BDD runner on undefined steps#3680
seokjin0414 wants to merge 1 commit into
apache:masterfrom
seokjin0414:3634-bdd-strict-rust

Conversation

@seokjin0414

Copy link
Copy Markdown
Contributor

Follow-up to #3554 — Rust half of #3634 (Go half in a separate PR).

The Rust BDD entry points used cucumber's default World::run, which treats a step without a matching definition as skipped and still exits 0 — CI stays green while steps silently stop running whenever a shared feature file gains a step the runner doesn't implement. Both entry points now run through fail_on_skipped(), so undefined steps turn the suite red. The shared feature files use no tag filtering, so nothing is legitimately skipped.

Verification (local server with --with-default-root-credentials, fresh data dir per run):

  • green path: cargo test -p bdd --features bdd --test basic_messaging → exit 0, 17 steps (17 passed)
  • red path (repro from BDD: rust and go runners pass silently on undefined steps #3634: And the server should sing a lullaby appended to the feature): exit 101, step reported Step doesn't match any function, 18 steps (17 passed, 1 failed)
  • cargo fmt / cargo clippy -D warnings clean

Refs #3634

@github-actions

Copy link
Copy Markdown

Thanks for the PR. It is labeled S-waiting-on-review and queued for review.

Slash commands (own line, regular comment) move it around the queue:

  • /ready - back to S-waiting-on-review after addressing feedback
  • /author - flip to S-waiting-on-author while you finish changes
  • /request-review @user-or-team - request a reviewer

See CONTRIBUTING.md for details.

@github-actions github-actions Bot added the S-waiting-on-review PR is waiting on a reviewer label Jul 16, 2026
The cucumber World::run default treats an unmatched step as skipped
and still exits 0, so CI stays green when a shared feature file gains
a step that has no matching definition in the Rust runner. Run both
entry points through fail_on_skipped so undefined steps turn the
suite red. The feature files use no tag filtering, so nothing is
legitimately skipped.

Refs apache#3634

Signed-off-by: shin <sars21@hanmail.net>
@seokjin0414
seokjin0414 force-pushed the 3634-bdd-strict-rust branch from bf3adfd to b04d574 Compare July 17, 2026 11:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-review PR is waiting on a reviewer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants