5.0.0
Released Released on August 18, 2020
Summary:
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-retriesplugin has been deprecated in favor of test retries built into Cypress. Addresses #1313.The Cypress.Cookies.defaults()
whitelistoption has been renamed topreserveto more closely reflect its behavior. Addressed in #7782.The
blacklistHostsconfiguration has been renamed to blockHosts to more closely reflect its behavior. Addressed in #7622.The
cy.server()whitelistoption has been renamed toignoreto more closely reflect its behavior. Addresses #6642.libgbm-devis now a requirement to run Cypress on Linux. Addressed in #7791.Values yielded by cy.setCookie(), cy.getCookie(), and cy.getCookies() will now contain the
sameSiteproperty if specified. Addresses #6892.The
experimentalGetCookiesSameSiteconfiguration flag has been removed, since this behavior is now the default. Addresses #6892.The return type of the Cypress.Blob methods
arrayBufferToBlob,base64StringToBlob,binaryStringToBlob, anddataURLToBlobhave changed fromPromise<Blob>toBlob. Addresses #6001.Cypress no longer supports file paths with a question mark
?or exclamation mark!in them. We now use the webpack preprocessor by default and it does not support files with question marks or exclamation marks. Addressed in #7982.For TypeScript compilation of spec, support, and plugins files, the
esModuleInteropoption is no longer coerced totrue. If you need to utilizeesModuleInterop, set it in yourtsconfig.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
__dirnameand__filenameno longer include leading slashes. Addressed in #7982.
Features:
There's a new
retriesconfiguration option to configure the number of times to retry a failing test. Addresses #1313..click(), .dblclick(), and .rightclick() now accept options
altKey,ctrlKey,metaKey, andshiftKeyto hold down key combinations while clicking. Addresses #486.You can now chain
.snapshot()off ofcy.stub()andcy.spy()to disabled snapshots during those commands. For example:cy.stub().snapshot(false). Addresses #3849.
Bugfixes:
The error
Cannot set property 'err' of undefinedwill 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 undefinederror duringcypress runon Firefox versions>=75. Fixes #6813.The error
Maximum call stack size exceededwill no longer throw when callingscrollIntoViewon 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: inlinewill no longer be considered hidden if it has child elements within it that are visible. Fixes #6183.When experimentalShadowDomSupport is enabled, .parent() and .parentsUntil() commands now work correctly in shadow dom as well as passing a selector to .parents() when the subject is in the shadow dom. Fixed in #8202.
Screenshots will now be correctly taken when a test fails in an
afterEachorbeforeEachhook 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 openif a non-default-channel browser was selected. Fixes #8281.For TypeScript projects,
tsconfig.jsonwill now be loaded and used to configure TypeScript compilation of spec and support files. Fixes #7006 and #7503.reporterStatsnow correctly show the number of passed and failed tests when a test passes but theafterEachfails. Fixes #7730.The Developer Tools menu will now always display in Electron when switching focus from Specs to the Test Runner. Fixes #3559.
Documentation Changes:
We have a new guide on Test Retries.
Our Migration Guide has a new section for 5.0 migration.
Misc:
Cypress now uses the webpack preprocessor by default to preprocess spec files.
The Runs tab within the Test Runner has a new improved design when the project has not been set up or login is required. Addressed in #8141.
The type for the
Windowobject returned from cy.window() is now correct. Addresses #7856.The type definition for Cypress's
ApplicationWindowcan now be extended. Addresses #7856.The type definition for
reporterOptionshas been added. Addresses #7877.
Dependency Updates
Upgraded Chrome browser version used during cypress run and when selecting Electron browser in cypress open from
80to83. Addressed in #7791.Upgraded bundled Node.js version from
12.8.1to12.14.1. Addressed in #7791.Upgraded
chalkfrom2.4.2to4.1.0. Addressed in #7650.Upgraded
cli-table3from0.5.1to0.6.0. Addressed in #7650.Upgraded
electronfrom8.3.1to9.2.0. Addressed in #7791 and #8235.Upgraded
execafrom1.0.0to4.0.2. Addressed in #7650.Upgraded
expressfrom4.16.4to4.17.1. Addressed in #8179.Upgraded
fs-extrafrom8.1.0to9.0.1. Addressed in #7650.Upgraded
log-symbolsfrom3.0.0to4.0.0. Addressed in #7650.Upgraded
tmpfrom0.1.0to0.2.1. Addressed in #7650.