Skip to content

feat(behave): add BehaveX parallel execution support#480

Merged
gibiw merged 5 commits intomainfrom
feat/behavex-support
Apr 20, 2026
Merged

feat(behave): add BehaveX parallel execution support#480
gibiw merged 5 commits intomainfrom
feat/behavex-support

Conversation

@gibiw
Copy link
Copy Markdown
Contributor

@gibiw gibiw commented Apr 20, 2026

Summary

  • Add BehaveX parallel execution support to qase-behave via --formatter flag
  • QaseFormatter implements launch_json_formatter() — BehaveX's post-execution formatter interface
  • Full mapping of BehaveX consolidated JSON to Qase models: scenarios, steps, tags (qase.id, qase.suite, qase.fields, qase.tags, qase.ignore, qase.project_id), statuses, duration, error messages
  • Lock file coordination (via filelock) for potential worker mode support
  • Version bump 3.1.0 → 3.2.0

Usage

behavex --formatter=qase.behave.formatter:QaseFormatter --parallel-processes=4 features/

Known limitations

  • qase.attach() / qase.comment() not supported in BehaveX mode (post-execution processing)
  • Configuration only via env vars / qase.config.json (no --define)

Test plan

  • 72 unit tests passing (18 new for JSON parsing, 6 new for formatter modes)
  • BehaveX single process + testops → run created successfully
  • BehaveX parallel (2 processes) + testops → run created successfully
  • BehaveX + report mode → 8 results in local JSON report
  • Standard behave + testops → no regressions
  • Lock files cleaned up after run

gibiw added 5 commits April 20, 2026 16:10
Add parse_scenario_from_json() and parse_step_from_json() to utils.py
that convert BehaveX consolidated JSON output into Qase Result/Step
models. These functions will be used by the JSON formatter to process
parallel execution results from BehaveX.
Make QaseFormatter dual-mode to support BehaveX parallel execution:
- Standard behave mode (unchanged behavior)
- BehaveX worker mode with lock file coordination for shared run
- BehaveX post-execution mode via launch_json_formatter for consolidated JSON processing
Add filelock>=3.12.2 for BehaveX worker coordination.
BehaveX timestamps are from before run creation and rejected by API.
Calculate timestamps from current time and duration instead.
@gibiw gibiw merged commit b654846 into main Apr 20, 2026
37 checks passed
@gibiw gibiw deleted the feat/behavex-support branch April 20, 2026 14:26
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.

1 participant