Skip to content

[Improvement] Support rerun/retry history by linking separate original + rerun uploads #310

Description

@timdegroot1996

Problem

With --rerunfailed, a suite produces an original output.xml and a separate rerun output.xml. If only the merged result is uploaded, the dashboard sees one final status per test and loses which tests failed on the first attempt. Consistent first-attempt failures (that pass on retry) signal a real problem, not just flakiness - that signal is valuable and currently invisible.

Why not parse merged output

rebot --merge does not store a structured attempt history. The merged output.xml keeps only the final test body plus a message annotation (Old status: FAIL -> New status: PASS). That yields a single first-status flag at best, requires users to actually run the merge step, and gives no per-attempt timings or error detail. So this issue takes the linked-uploads approach instead.

Proposed direction

Upload the original run and each rerun as separate runs, and link them so the dashboard can group and diff attempts.

  • Linking mechanism - a CLI/API field on upload, e.g. --rerun-of <run_start|alias> (or a tag convention like rerun:<parent-id>). The rerun upload references its parent so they form an attempt chain.
  • Storage - add parent_run (or rerun_group) to the run/test data so linked attempts are queryable.
  • Display - in the statistics / test graph, group linked attempts under one logical run; mark tests that failed on attempt 1 but passed later (flaky), and tests that failed every attempt (hard fail). Optional toggle "Show first-attempt failures".

Benefits over merge-parsing

  • No dependency on users running rebot --merge.
  • Full per-attempt data (status, timing, message) for every attempt, not just a flag.
  • Natural fit with existing run-based model.

Open questions

  • Link via explicit CLI/API field, or a tag convention?
  • Reference parent by run_start, alias, or a user-supplied group id?
  • How to render attempt chains in the existing graphs without cluttering non-rerun runs?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions