Test retries has made it to Cypress core! Please upgrade to 5.0.0 and remove this plugin
devDependencies
and related code in support/plugin filesCypress.currentTest
in favor of test config overrides e.g.:
// on a single test
it('test title', { retries: 2 }, () => {
...
})
// or on a suite describe('suite title', { retries: 2 }, () => { ... })
- To enable retries globally, set `retries` in `cypress.json` instead of using `Cypress.env('RETRIES')` e.g.:
```js
{
"retries": { "openMode": 0, "runMode": 2 }
}
this.retries(n)
(not supported)Please report bugs in the issues of this repo.
Add the plugin to devDependencies
npm install -D cypress-plugin-retries
At the top of cypress/support/index.js
:
require('cypress-plugin-retries')
To enable retry logging in the terminal alongside mocha output
Inside cypress/plugins/index.js:
module.exports = (on, config) => {
require('cypress-plugin-retries/lib/plugin')(on)
}
example output:
Use the environment variable CYPRESS_RETRIES
to set the retry number for all spec files:
CYPRESS_RETRIES=2 npm run cypress
or Set the "env"
key in your cypress.json
configuration file to set the retry number for all spec files:
{
"env":
{
"RETRIES": 2
}
}
or On a per-test or per-hook basis, set the retry number:
Note: this plugin adds Cypress.currentTest and you should only access it in the context of this plugin.
it('test', () => { Cypress.currentTest.retries(2) })
or [undesirable] Use
mocha
'sthis.retries(n)
inside of a test: Note: must usefunction()
notation, not arrows()=>{}
it('test', function() { this.retries(2) })
Conditional Logic based on currentRetry number?
https://github.com/Bkucera/cypress-plugin-retries/issues/32
add a wait before the next retry?
https://github.com/Bkucera/cypress-plugin-retries/issues/52
beforeEach
and afterEach
hooks that apply the test will be re-ranbeforeAll(before)
hooks are not re-ran on retry. These are guaranteeed only to be ran once.beforeEach
hook, the test will retryafterEach
/afterAll
hook, the test will not retry, but fail as normal (if you want to retry an afterEach hook, see this issue)RETRIES_HIDDEN=1
to hide previous attempts' command log entries (instead of marking them with an orange x
)RETRIES_NO_LOG=1
to omit logging to terminal in Cypress run mode ((retry 1/3) ...
)