Cypress now includes support for test retries! Similar to how Cypress will retry assertions when they fail, test retries will allow you to automatically retry a failed test prior to marking it as failed. Read our new guide on Test Retries for more details.
Breaking Changes:
Please read our Migration Guide which explains the changes in more detail and how to change your code to migrate to Cypress 5.0.
The cypress-plugin-retries plugin has been deprecated in favor of test retries built into Cypress. Addresses #1313.
The Cypress.Cookies.defaults()whitelist option has been renamed to preserve to more closely reflect its behavior. Addressed in #7782.
The blacklistHosts configuration has been renamed to blockHosts to more closely reflect its behavior. Addressed in #7622.
The cy.server()whitelist option has been renamed to ignore to more closely reflect its behavior. Addresses #6642.
libgbm-dev is now a requirement to run Cypress on Linux. Addressed in #7791.
The experimentalGetCookiesSameSite configuration flag has been removed, since this behavior is now the default. Addresses #6892.
The return type of the Cypress.Blob methods arrayBufferToBlob, base64StringToBlob, binaryStringToBlob, and dataURLToBlob have changed from Promise<Blob> to Blob. Addresses #6001.
Cypress no longer supports file paths with a question mark ? in them. We now use the webpack preprocessor by default and it does not support files with question marks. Addressed in #7982.
For TypeScript compilation of spec, support, and plugins files, the esModuleInterop option is no longer coerced to true. If you need to utilize esModuleInterop, set it in your tsconfig.json. Addresses #7575.
Cypress now requires TypeScript 3.4+. Addressed in #7856.
Installing Cypress on your system now requires Node.js 10+. Addresses #6574.
In spec files, the values for the globals __dirname and __filename no longer include leading slashes. Addressed in #7982.
Features:
There's a new retries configuration option to configure the number of times to retry a failing test. Addresses #1313.
.click(), .dblclick(), and .rightclick() now accept options altKey, ctrlKey, metaKey, and shiftKey to hold down key combinations while clicking. Addresses #486.
You can now chain .snapshot() off of cy.stub() and cy.spy() to disabled snapshots during those commands. For example: cy.stub().snapshot(false). Addresses #3849.
Bugfixes:
The error Cannot set property 'err' of undefined will no longer incorrectly throw when rerunning tests in the Test Runner. Fixes #7874 and #8193.
Cypress will no longer throw a Cannot read property 'isAttached' of undefined error during cypress run on Firefox versions >= 75. Fixes #6813.
The error Maximum call stack size exceeded will no longer throw when calling scrollIntoView on an element in the shadow dom. Fixes #7986.
Cypress environment variables that accept arrays as their value will now properly evaluate as arrays. Fixes #6810.
Elements having display: inline will no longer be considered hidden if it has child elements within it that are visible. Fixes #6183.
Screenshots will now be correctly taken when a test fails in an afterEach or beforeEach hook after the hook has already passed. Fixes #3744.
Cypress will no longer report screenshots overwritten in a cy.screenshot()onAfterScreenshot option as a unique screenshot. Fixes #8079.
Taking screenshots will no longer fail when the screenshot names are too long for the filesystem to accept. Fixes #2403.
The "last used browser" will now be correctly remembered during cypress open if a non-default-channel browser was selected. Fixes #8281.
For TypeScript projects, tsconfig.json will now be loaded and used to configure TypeScript compilation of spec and support files. Fixes #7006 and #7503.
reporterStats now correctly show the number of passed and failed tests when a test passes but the afterEach fails. Fixes #7730.
The Developer Tools menu will now always display in Electron when switching focus from Specs to the Test Runner. Fixes #3559.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Bumps cypress from 4.11.0 to 5.0.0.
Release notes
Sourced from cypress's releases.
Commits
6220a44
release 5.0.0 [skip ci]9a32d22
fix(server): Fix 5.0 spec duration always reporting as 0ms (#8313)4ca9ddc
chore: Upgrade cypress-example-kitchensink to 1.12.0 (#8312)46714c5
fix: Fix getting parents/ancestors for shadow dom elements (#8106)6370f2e
fix(runner): fix run result attempts array order [develop] (#8303)093f3e7
fix: Avoid looking up remote jquery instance if subject is not an element (#8...2f835f7
fix: Add reporter options (#8217)4c8fb2f
fix: inline element with visibile child now is considered visible (#8130)9a32862
put slash back2b4de67
try escape slashDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)