Cypress v4.0.0 Release Notes

Release Date: 2020-02-06 // about 4 years ago
  • 🚀 Released 2/6/2020

    Summary:

    ⚡️ Cypress 4.0.0 includes support for Mozilla Firefox browsers (beta support) and Microsoft Edge (Chromium based) browsers which is a big step forward for Cross Browser Testing in Cypress. We've also updated many of the underlying tools behind Cypress that bring new powerful features.

    💥 Breaking Changes:

    🍱 ⚠️ Please read our Migration Guide which explains the changes in more detail and how to change your code to migrate to Cypress 4.0.

    • ⬆️ Mocha, Chai, and Sinon.JS has been upgraded which includes a number of breaking changes and new features. Addresses #2528, #2529, #2866.
    • 💻 During before:browser:launch, we no longer yield the second argument as an array of browser arguments and instead yield an options object with an args property in order to support more advanced browser launch options. Addresses #6306.
    • ⚡️ We updated the Cypress browser objects of all Chromium-based browsers, including Electron, to have chromium set as their family field. Addresses #6243.
    • 💻 The --browser flag no longer accepts canary as its sole argument to run Chrome Canary. You now have to specify chrome:canary to use the Chrome Canary browser. Addresses #6243.
    • cy.writeFile() now yields null instead of the contents written to the file in order to more align with the behavior of fs. Addresses #2466.
    • Installing Cypress on your system now requires Node.js 8+. Addresses #5632.
    • 👍 Cypress no longer support CJSX. Addresses #3469.

    🔋 Features:

    • 💻 Mozilla Firefox browsers now have beta support. Addresses #1096.
    • 💻 Microsoft Edge (Chromium based) browsers are now supported. Addresses #5433.
    • 💻 There is a new Cypress.isBrowser() utility function. Addresses #2023.
    • 🚀 We updated the Cypress.browser object with a new channel property which contains the release channel of the detected browser. Addresses #6243.
    • ✅ Appending .only to multiple tests or suites will now run all tests with the .only property. Addresses #2828.
    • 👍 The isFinite assertion is now supported. Addresses #5669.
    • 👍 The empty assertion is now supported when used against Map objects. Addresses #6072.
    • 👍 The nested assertion chainer property is now supported. Addresses #3080 and #5004.

    🛠 Bugfixes:

    • ✅ A test or suite appended with an .only when multiple tests or suites contained the same title now run correctly. Fixes #5345.
    • 🛠 The .its() command now properly supports 0 as a value for indexes or object keys. Fixes #6216.

    📚 Documentation Changes:

    Misc:

    • 🔧 We now pass through errors caused when attempting to read arguments passed through config. Addresses #6279.
    • ✅ We fixed a broken 'Learn more' link within the Node.js Version panel of the Test Runner Settings. Addresses #6237.
    • ✅ The browser icons in the Test Runner now display as images with the proper branding. Addresses #6188.
    • ⚡️ We updated the styling of browser dropdown in the Test Runner to look more like a button. Addresses #6298.
    • ✅ The timer in the Test Runner now always displays at a consistent length. Addresses #6168.
    • 🖨 You can print debug information about the memory & CPU usage of Cypress, which can be accessed by enabling the cypress:server:util:process_profiler debug stream. Addresses #6169.
    • 🔌 We added types for plugin events. Addresses #6322.

    ⚡️ Dependency Updates

    • ➕ Added @benmalka/foxdriver. Addressed in #1359.
    • ⬆️ Upgraded @cypress/browserify-preprocessor from 1.1.2 to 2.1.1. Addressed in #4308 and #4226.
    • ⬆️ Upgraded bluebird from 3.5.0 to 3.7.2. Addressed in #4226.
    • ⬆️ Upgraded cachedir from 1.3.0 to 2.3.0. Addressed in #4208 and #4226.
    • ⬆️ Upgraded chai from 3.5.0 to 4.2.0. Addressed in #2862 and #4226.
    • ⬆️ Upgraded chai-as-promised from 6.0.0 to 7.1.1. Addressed in #4226.
    • ⬆️ Upgraded chalk from 2.4.0 to 3.0.0. Addressed in #4226.
    • ⬆️ Upgraded commander from 2.15.1 to 4.0.1. Addressed in #4208 and #4226.
    • ⬆️ Upgraded debug from 2.15.1 to 4.0.1. Addressed in #4226.
    • ⬆️ Upgraded execa from 0.10.0 to 3.3.0. Addressed in #4226.
    • ➕ Added firefox-profiler. Addressed in #1359.
    • ➕ Added foxdriver. Addressed in #1359.
    • ⬆️ Upgraded fs-extra from 5.0.0 to 8.1.0. Addressed in #4226.
    • ⬆️ Upgraded getos from 3.1.1 to 3.1.4. Addressed in #4226.
    • ⬆️ Upgraded is-ci from 1.2.1 to 2.0.0. Addressed in #4226.
    • ⬆️ Upgraded mocha from 2.5.3 to 7.0.1. Addressed in #2703 and #4226.
    • ⬆️ Upgraded listr from 0.12.0 to 0.14.3. Addressed in #4226.
    • ⬆️ Upgraded log-symbols from 2.2.0 to 3.0.0. Addressed in #4226.
    • ➕ Added marionette-client. Addressed in #1359.
    • ⬆️ Upgraded ramda from 0.24.1 to 0.26.1. Addressed in #4226.
    • ⬆️ Upgraded sinon from 3.2.0 to 8.1.1. Addressed in #2881 and #4226.
    • ⬆️ Upgraded strip-ansi from 3.0.1 to 6.0.0. Addressed in #1359.
    • ➕ Added systeminformation. Addressed in #1359.
    • ⬆️ Upgraded support-colors from 5.5.0 to 7.1.0. Addressed in #4208 and #4226.
    • ⬆️ Upgraded untildify from 3.0.3 to 4.0.0. Addressed in #4226.