Cypress v5.0.0 Release Notes

Release Date: 2020-08-19 // over 3 years ago
  • ๐Ÿš€ Released 8/19/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-retries plugin has been deprecated in favor of test retries built into Cypress. Addresses #1313.
    • 0๏ธโƒฃ 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.
    • Values yielded by cy.setCookie(), cy.getCookie(), and cy.getCookies() will now contain the sameSite property if specified. Addresses #6892.
    • ๐Ÿ”ง 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.
    • 0๏ธโƒฃ 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.
    • ๐Ÿ›  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 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.
    • 0๏ธโƒฃ 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.

    ๐Ÿ“š Documentation Changes:

    • โœ… We have a new guide on Test Retries.
    • Our Migration Guide has a new section for 5.0 migration.

    Misc:

    • 0๏ธโƒฃ 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 Window object returned from cy.window() is now correct. Addresses #7856.
    • The type definition for Cypress's ApplicationWindow can now be extended. Addresses #7856.
    • The type definition for reporterOptions has been added. Addresses #7877.

    โšก๏ธ Dependency Updates

    • โฌ†๏ธ Upgraded Chrome browser version used during cypress run and when selecting Electron browser in cypress open from 80 to 83. Addressed in #7791.
    • โฌ†๏ธ Upgraded bundled Node.js version from 12.8.1 to 12.14.1. Addressed in #7791.
    • โฌ†๏ธ Upgraded chalk from 2.4.2 to 4.1.0. Addressed in #7650.
    • โฌ†๏ธ Upgraded cli-table3 from 0.5.1 to 0.6.0. Addressed in #7650.
    • โฌ†๏ธ Upgraded electron from 8.3.1 to 9.2.0. Addressed in #7791 and #8235.
    • โฌ†๏ธ Upgraded execa from 1.0.0 to 4.0.2. Addressed in #7650.
    • โฌ†๏ธ Upgraded express from 4.16.4 to 4.17.1. Addressed in #8179.
    • โฌ†๏ธ Upgraded fs-extra from 8.1.0 to 9.0.1. Addressed in #7650.
    • โฌ†๏ธ Upgraded log-symbols from 3.0.0 to 4.0.0. Addressed in #7650.
    • โฌ†๏ธ Upgraded tmp from 0.1.0 to 0.2.1. Addressed in #7650.