Re-run Service
wdio-rerun-service is a 3rd party package, for more information please see GitHub | npm
This service tracks failing Mocha or Jasmine tests and Cucumber scenarios executed within the WebdriverIO test framework. It will allow failing or unstable tests or scenarios to be re-run.
NOTE: Cucumber Framework users running WebdriverIO versions 5.x
and 6.x
should use version 1.6.x
. If you are on the latest major version of 7.x
, use the latest 1.7.x
version of this service.
Re-run vs. Retry
The retry
logic built into WebdriverIO for Cucumber and Mocha/Jasmine is helpful for handling flaky steps in Cucumber and Mocha/Jasmine. Retrying in each framework has caveats:
- Cucumber: It does not take into account that some steps may not be able to be retried in the middle of a test. Running a step twice may break the rest of the Scenario or it may not be possible in the test context.
- Mocha/Jasmine: The
retry
logic may be applied to an individual test, however, this is still done in real-time and perhaps does not account for temporal issues or network connectivity problems.
The main distinctions of the re-run
:
- Will re-run an entire individual Cucumber Scenario and not just a single step
- Enables an entire spec file to be re-run after a main test execution is complete
- May be copied and executed locally (
retry
cannot) - Can still be used in conjunction with
retry
methods - Does not require any code change to apply
retry
logic to flaky or problematic tests
It is recommended to take some time to evaluate the options available. A hybrid solution may be the best solution to provide the best real and actionable test results.
Installation
The easiest way is to add wdio-rerun-service
to devDependencies
in your package.json
.
{
"devDependencies": {
"wdio-rerun-service": "^1.6.2"
}
}