{{ message }}
Repository navigation
Conversation
…al and parallel runs Move the status rules of the formatter's afterTest (undefined, failed, ambiguous, the pending reason and the undefined step suffix) and the feature stack lines into getStepResult() and getFeatureStack() in utils.ts, so the parallel step path can use the same rules. No change in the sequential output: the formatter tests and their snapshots pass without edits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… steps in parallel mode as in sequential mode With parallelMode, the step path only converted the Cucumber status: - an undefined step was reported as passed, with no error - an ambiguous step was skipped with no reason, and failAmbiguousDefinitions was ignored for steps - a failed step had the whole Cucumber message as error message, so reporters showed `Error: Error: ...` and internal stack lines The parallel step path now uses getStepResult(), as the sequential formatter does, and lists the matching step definitions of an ambiguous step from Cucumber's support code messages. Real-browser check (Chrome, sequential vs parallel run of the same specs): the spec, dot, concise, JUnit and JSON reporters now give the same step results, also with ignoreUndefinedDefinitions and failAmbiguousDefinitions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Parallel mode ran the scenarios in file order and ignored cucumberOpts.order. It now orders them with Cucumber's own orderPickles, as Cucumber does in a sequential run: `random:<seed>` gives the same order as a sequential run, `random` logs its seed, and an unknown order fails before any window opens. Real-browser check (Chrome, 2 feature files, order random:7, 1 slot): sequential and parallel runs start the scenarios in the same order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…itle in parallel mode In parallel mode a Before/After hook had an empty title. Sequential mode titles it with the hook name and tag expression, for example `@beforeFails`, which the spec reporter shows for a failing hook and the JSON reporter writes as the hook title. The hook titles now come from the same support code messages as the step definitions. Real-browser check (Chrome, sequential vs parallel run of the same specs): the spec, dot, concise, JUnit and JSON reporters give the same result. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…os in parallel mode as in sequential mode With scenarioLevelReporter, the parallel scenario result kept its own rules and collected an ambiguous step result before its message was added: - with failAmbiguousDefinitions, an ambiguous scenario failed with no error, and when skipped it had no pendingReason - with ignoreUndefinedDefinitions, the scenario title had no ` (undefined step)` suffix - the undefined scenario message had quotes and no scenario location The scenario result now uses getStepResult(), as the sequential formatter does, with the ambiguous message added first. Real-browser check (Chrome, scenarioLevelReporter, also with failAmbiguousDefinitions and ignoreUndefinedDefinitions): the spec, dot, concise and JSON reporters give the same result in sequential and parallel runs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rror that shows it getStepResult() took the feature stack as a string, so every step result scanned the feature children, also a passing step. It now takes a function and calls it only for the undefined and ambiguous failures, as the formatter did before the shared rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n parallel mode With tagsInTitle, a parallel feature suite had no tags in its title (`Statuses in parallel` instead of `@feat: Statuses in parallel`), and its start had no description and keyword. Reporters such as JUnit and spec then named the feature differently than in a sequential run. Real-browser check (Chrome, tagsInTitle, step and scenario level): the JUnit testsuite names and the spec failure titles are the same as in a sequential run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…stop as Cucumber does After a failFast stop, parallel mode reported each scenario that did not run as plain skipped steps. Cucumber runs these scenarios in skip mode: their hooks are reported as skipped, an undefined step stays failed, and an ambiguous step keeps its reason. They now run through Cucumber's test case runner with `skip: true`, with no window, so the reporters get the same events as in a sequential run. The failFast tests use a defined failing step, because in skip mode an undefined step stays failed. Real-browser check (Chrome, failFast, step and scenario level, 2 slots): the spec, dot, concise, JUnit and JSON reporters and the framework events are the same as in a sequential run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
create-wdio
eslint-plugin-wdio
wdio
@wdio/ai-service
@wdio/allure-reporter
@wdio/appium-service
@wdio/browser-runner
@wdio/cli
@wdio/concise-reporter
@wdio/config
@wdio/cucumber-framework
@wdio/cucumberjs-json-reporter
@wdio/display-server
@wdio/dot-reporter
@wdio/firefox-profile-service
@wdio/globals
@wdio/jasmine-framework
@wdio/json-reporter
@wdio/junit-reporter
@wdio/lighthouse-service
@wdio/local-runner
@wdio/logger
@wdio/mocha-framework
@wdio/protocols
@wdio/repl
@wdio/reporter
@wdio/runner
@wdio/sauce-service
@wdio/session
@wdio/shared-store-service
@wdio/smoke-test-cjs-service
@wdio/smoke-test-reporter
@wdio/smoke-test-service
@wdio/snapshot
@wdio/spec-reporter
@wdio/static-server-service
@wdio/sumologic-reporter
@wdio/testingbot-service
@wdio/types
@wdio/utils
@wdio/webdriver-mock-service
webdriver
webdriverio
commit: |
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
With
cucumberOpts.parallelModeandfailFast, the scenarios that did not run after the stop were reported as plain skipped steps. Cucumber runs them in skip mode, so a sequential run reports more:Before/Afterhookshook:start/hook:endwith stateSKIPPEDStep "…" is not defined. …pendingReasonEvidence
Real browser (headless Chrome, BiDi),
failFast: true, 2 slots, the same specs run sequential and withparallelMode: 'contexts':Also the same as sequential with
scenarioLevelReporter: true, and no change for the base,dryRuncases.@wdio/cucumber-framework; new:reports their hooks as skipped and does not run them,keeps an undefined step failed, as Cucumber does,keeps the reason of an ambiguous step(each failed before the fix). The 2 older failFast tests now use a defined failing step, because skip mode keeps an undefined step failed.Merge Danger
Door: two-way
Blast Radius: Cucumber parallel mode with
failFastonly. The run result does not change (the run already failed).