Skip to content

[Feature]: Add more modes to testOptions.video & testOptions.trace #30150

@Az8th

Description

@Az8th

🚀 Feature Request

Hello,

We currently have 4 video & trace modes : on, off, on-first-retry, retain-on-failure.
They are nice but they are suboptimal (or even irrelevant) when doing more than one retry :

Given we have a flaky test, retries are set to 2 and we do not want to keep successes.

  • Case 1 : Test passes on first try

    Mode Run ✅ Retry 1 ⏭️ Retry 2 ⏭️ Comment
    on 💾 / / Suboptimal (space wise)
    off / / Optimal
    on-first-retry / / Optimal
    retain-on-failure / / Optimal
  • Case 2 : Test fails but passes on first retry

    Mode Run ❌ Retry 1 ✅ Retry 2 ⏭️ Comment
    on 💾 💾 / Suboptimal (space wise)
    off / Irrelevant (does not cover failure)
    on-first-retry 💾 / Irrelevant (does not cover failure)
    retain-on-failure 💾 / Optimal
  • Case 3 : Test fails twice but passes on second retry

    Mode Run ❌ Retry 1 ❌ Retry 2 ✅ Comment
    on 💾 💾 💾 Suboptimal (space wise)
    off Irrelevant
    on-first-retry 💾 💾 Suboptimal (space wise & if different fail causes)
    retain-on-failure 💾 💾 Suboptimal (space wise) or optimal (if different fail causes)
  • Case 4 : Test keeps failing

    Mode Run ❌ Retry 1 ❌ Retry 2 ❌ Comment
    on 💾 💾 💾 Suboptimal (space wise)
    off Irrelevant
    on-first-retry 💾 💾 Suboptimal (space wise & if different fail causes)
    retain-on-failure 💾 💾 💾 Suboptimal (space wise) or optimal (if different fail causes)

    Simply add a mode that retain only the first/last fail would be optimal in any of those cases.

Example

use: {
    video: 'retain-first-failure',
    trace: 'retain-last-failure'
}

Motivation

It would cover more usecases and reduce reports size in the best scenario (especially when performing multiple retries), while avoiding to lack clues on why a test failed in the worst one.

Thanks for reading, do not hesitate to upvote or give your insights !

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions