Re-run Only Failed Tests

How to setup failed tests re-run on GitLab

When a workflow fails in GitLab CI/CD you have the option to re-run the failed jobs. However, an additional setup is required for properly configuring Playwright for rerunning only the failed tests. See Re-run Only Failed Tests guide for details.

Rerunning only the failed jobs on GitLab CI/CD

Playwright Sharding

If you're using Playwright Sharding for running your tests in parallel, use currents cache command to store the last run results and simplify re-run workflows.

Example workflows are available in our GitLab repositories:

  • reruns-pwc.yml - re-run only failed tests on GitLab CI using 3 parallel runners and Playwright Shards + Currents pwc command

  • reruns-reporter.yml - re-run only failed tests on GitLab CI using 3 parallel runners and Playwright Shards + Currents reporter in playwright.config.ts

Install the @currents/cmd package
Add an after_script to upload the cache

Add an after_script to the end of your job that uploads run information to the cache

See the configuration for details on the flags.

Add a download cache step to you script

Update your job script to download the cache prior to running tests

See the configuration for details on the flags.

A full example

Currents Orchestration

In case you're using Orchestration Setup for running your Playwright tests in parallel, use currents api command to fetch the results of the last run from the API.

An example workflow is available in our GitLab demo repository

  • rerun-or8n.yml - rerun only failed tests on GitLab CI/CD with Currents Orchestration

Install the @currents/cmd package
Set CURRENTS_API_KEY environment variable

Obtain an API key (see Authentication) and Record Key from Currents Dashboard and set GitLab CI/CD variable accordingly

Add an after_script to upload the cache

Add an after_script to the end of your job that uploads GitLab retry information to the cache

See currents cache documentation for all the available options

Add an api get-run step to you script

Update your job script to download the cache prior to running tests, and then also grab the previous run.

See currents api documentation to explore all the available options

A full example

Last updated

Was this helpful?