Skip to content

feat(AB#1273974): repeat feature#330

Open
Artem Pogorelov (art-pogorelov) wants to merge 3 commits intophilips-software:mainfrom
art-pogorelov:feature/AB#1273974-repeat-feature
Open

feat(AB#1273974): repeat feature#330
Artem Pogorelov (art-pogorelov) wants to merge 3 commits intophilips-software:mainfrom
art-pogorelov:feature/AB#1273974-repeat-feature

Conversation

@art-pogorelov
Copy link
Copy Markdown

@art-pogorelov Artem Pogorelov (art-pogorelov) commented Apr 23, 2026

Overview

Add --repeat N and --repeat-tag-filter <expression> CLI options to re-run matching scenarios N times (useful for performance measurements, for example).
This mirrors the existing --retry pattern but runs unconditionally.

Behavior

--repeat 10 → every scenario runs 10 times
--repeat 10 --repeat-tag-filter "@Performance" → only scenarios tagged performance run 10 times; others run once
Default (--repeat 1 or omitted) → no behavior change
Each repeat is a full independent execution (hooks fire each time)
Exit code: fail if any repeat fails

Testing

Verify with:
runner.exe features --repeat 3 --repeat-tag-filter "@SomeTag"
Confirm the tagged scenario runs 3 times and untagged scenarios run once.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a “repeat” execution mechanism intended to mirror existing retry behavior, allowing selected scenarios to be executed multiple times for performance measurement.

Changes:

  • Introduces repeat / repeatTagExpression into runtime run options and threads them through application/run options wiring.
  • Updates the runtime Worker to run each matching test case multiple times and aggregate pass/fail across repeats.
  • Adds a new compatibility kit (compatibility/repeat/*) and wires repeat settings into BaseCompatibility.cpp.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
cucumber_cpp/library/support/Types.hpp Adds repeat fields to runtime options.
cucumber_cpp/library/runtime/Worker.cpp Implements repeat loop execution per test case.
cucumber_cpp/library/Application.hpp Adds repeat fields to CLI/options struct.
cucumber_cpp/library/Application.cpp Forwards repeat options into RunOptions.
compatibility/BaseCompatibility.cpp Sets repeat options for the repeat devkit kit.
compatibility/repeat/repeat.feature New feature for repeat compatibility coverage.
compatibility/repeat/repeat.cpp Step definitions for the repeat kit.
compatibility/repeat/repeat.ndjson Expected message output for repeat kit.
compatibility/repeat/repeat.arguments.txt Declares intended CLI args for repeat kit.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread compatibility/repeat/repeat.ndjson Outdated
Comment thread cucumber_cpp/library/Application.cpp
Comment thread cucumber_cpp/library/runtime/Worker.cpp Outdated
Copilot AI review requested due to automatic review settings April 23, 2026 12:34
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cucumber_cpp/library/runtime/Worker.cpp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants