5.4.0

Released Released on October 13, 2020

Features:

  • You can now run cypress cache prune to delete all installed Cypress versions from the cache except for the currently-installed version. Addresses #5972.

  • There's a new --size option for the cypress cache list command that prints the sizes of the Cypress cache folders. Addresses #6404.

  • For video recordings of runs, there is now a video chapter key for each test. If your video player supports chapters, you can move to the start of each test right away. Addresses #3626.

  • In Windows, you can now append the browser type to the end of the path passed to the --browser flag, like cypress open --browser C:/User/App/browser.exe:chrome, to help detect the browser type. Addresses #6389.

  • cy.viewport() has new iphone-7, iphone-8, and iphone-se2 presets. Addressed in #8624

  • When there is a new version of Cypress available, the update modal has a new design with 'copy to clipboard' buttons to copy the upgrade commands. Addressed in #8751.

  • The Command Log can be hidden by passing the CYPRESS_NO_COMMAND_LOG=1 environment variable during cypress open or cypress run to be used as a tool to debug performance issues. Addressed in #8689.

Bugfixes:

  • We fixed a regression in 5.0.0 where the chromeWebSecurity option had no effect in Electron. Fixes #8399.

  • Tests will no longer hang and now properly throw when there is an error thrown from a test:after:run event listener. Fixes #2271 and #8701.

  • When a command is chained after .within() and cy.get() is called inside it, the scope will no longer permanently change. Fixes #2106, #4672, #4757, and #5183.

  • Dual commands like cy.contains() when used after an .each() commands now query as expected. Fixes #4921.

  • / is no longer added to the URL when baseUrl has param(s). Fixes #2101.

  • When using cy.route2() the route handler timeouts will no longer leak into other tests and cause random failures. Addressed in #8727.

  • The request.body is now available when using cy.wait() on an aliased cy.route2() route which had not been intercepted. Fixes #8695.

  • Re-running failed build steps in Bitbucket will no longer create a new run on the Cypress Dashboard. Fixes #8720.

  • The forced garbage collection timer will no longer display when using a version of Firefox newer than 80. Fixes #8725.

  • The browser dropdown is no longer covered when opened from the Runs tab in the Test Runner. Fixed in #8745.

  • Fixed an issue where preprocessor-related plugins would cause tests not to run and a duplicate instance of Cypress to be spawned. Fixes #8634.

Misc:

  • Improved type definitions for cy.route2(). Addresses #8694 and #8782.

  • The Test Runner now shows an indicator in the footer and a toast notification if there is a new version available. Addressed in #8702 and #8803.

Dependency Updates:

  • Upgraded Chrome browser version used during cypress run and when selecting Electron browser in cypress open from 83 to 85. Addressed in #8406.

  • Upgraded bundled Node.js version from 12.14.1 to 12.16.3. Addressed in #8406.

  • Upgraded electron from 9.2.1 to 10.1.3. Addressed in #8406.

  • Upgraded firefox-profile from 2.0.0 to 4.0.0. Addressed in #8786.

  • Upgraded node-forge from 0.9.0 to 0.10.0. Addressed in #8800.