Cypress v4.0.0stable Released Feb 06, 2020
โš ๏ธ Breaking Change Impact Score: 7/10

Cypress v4.0.0 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: cypress ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • Breaking Changes:** **:warning: Please read our [Migration Guide](https://on.cypress.io/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](https://github.com/cypress-io/cypress/issues/2528), [#2529](https://github.com/cypress-io/cypress/issues/2529), [#2866](https://github.com/cypress-io/cypress/issues/2866).
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Cypress v4.0.0. Source highlight: 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.

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โš ๏ธ Breaking Changes & Deprecations (2)

  • Breaking Changes:** **:warning: Please read our [Migration Guide](https://on.cypress.io/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](https://github.com/cypress-io/cypress/issues/2528), [#2529](https://github.com/cypress-io/cypress/issues/2529), [#2866](https://github.com/cypress-io/cypress/issues/2866).

โœจ New Features & Capabilities (6)

  • Mocha, Chai, and Sinon.JS has been upgraded which includes a number of breaking changes and new features. Addresses #2528, #2529, #2866.
  • Added Cross Browser Testing Guide with helpful CI strategies to consider when running tests across multiple browsers.
  • Added `Cypress.isBrowser()` doc.
  • We added types for plugin events. Addresses #6322.
  • Added `@benmalka/foxdriver`. Addressed in #1359.
  • Added `firefox-profiler`. Addressed in #1359.

๐Ÿ”ง Bug Fixes & Patches (5)

  • 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.
  • We fixed a broken 'Learn more' link within the Node.js Version panel of the Test Runner Settings. Addresses #6237.
  • 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.
  • Upgraded `debug` from `2.15.1` to `4.0.1`. Addressed in #4226.
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
*Released 2/6/2020* **Summary:** Cypress 4.0.0 includes support for [Mozilla Firefox](https://www.mozilla.org/firefox/) browsers (beta support) and [Microsoft Edge](https://www.microsoft.com/edge) (Chromium based) browsers which is a big step forward for [Cross Browser Testing](https://on.cypress.io/cross-browser-testing) in Cypress. We've also updated many of the [underlying tools](https://on.cypress.io/bundled-tools) behind Cypress that bring new powerful features. **Breaking Changes:** **:warning: Please read our [Migration Guide](https://on.cypress.io/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](https://github.com/cypress-io/cypress/issues/2528), [#2529](https://github.com/cypress-io/cypress/issues/2529), [#2866](https://github.com/cypress-io/cypress/issues/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](https://github.com/cypress-io/cypress/issues/6306). - We updated the [Cypress browser objects](https://on.cypress.io/browser-launch-api) of all Chromium-based browsers, including Electron, to have `chromium` set as their `family` field. Addresses [#6243](https://github.com/cypress-io/cypress/issues/6243). - The [`--browser` flag](https://on.cypress.io/command-line#cypress-run-browser-lt-browser-name-or-path-gt) 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](https://github.com/cypress-io/cypress/issues/6243). - [`cy.writeFile()`](https://on.cypress.io/writefile) now yields `null` instead of the contents written to the file in order to more align with the behavior of `fs`. Addresses [#2466](https://github.com/cypress-io/cypress/issues/2466). - Installing Cypress on your system now requires Node.js 8+. Addresses [#5632](https://github.com/cypress-io/cypress/issues/5632). - Cypress no longer support CJSX. Addresses [#3469](https://github.com/cypress-io/cypress/issues/3469). **Features:** - [Mozilla Firefox](https://www.mozilla.org/firefox/) browsers now have beta support. Addresses [#1096](https://github.com/cypress-io/cypress/issues/1096). - [Microsoft Edge](https://www.microsoft.com/edge) (Chromium based) browsers are now supported. Addresses [#5433](https://github.com/cypress-io/cypress/issues/5433). - There is a new [`Cypress.isBrowser()`](https://on.cypress.io/isbrowser) utility function. Addresses [#2023](https://github.com/cypress-io/cypress/issues/2023). - We updated the [`Cypress.browser`](https://on.cypress.io/browser) object with a new `channel` property which contains the release channel of the detected browser. Addresses [#6243](https://github.com/cypress-io/cypress/issues/6243). - Appending `.only` to multiple tests or suites will now run all tests with the `.only` property. Addresses [#2828](https://github.com/cypress-io/cypress/issues/2828). - The [`isFinite` assertion](https://on.cypress.io/assertions) is now supported. Addresses [#5669](https://github.com/cypress-io/cypress/issues/5669). - The `empty` assertion is now supported when used against Map objects. Addresses [#6072](https://github.com/cypress-io/cypress/issues/6072). - The `nested` assertion chainer property is now supported. Addresses [#3080](https://github.com/cypress-io/cypress/issues/3080) and [#5004](https://github.com/cypress-io/cypress/issues/5004). **Bugfixes:** - A test or suite appended with an `.only` when multiple tests or suites contained the same title now run correctly. Fixes [#5345](https://github.com/cypress-io/cypress/issues/5345). - The [`.its()`](https://on.cypress.io/its) command now properly supports 0 as a value for indexes or object keys. Fixes [#6216](https://github.com/cypress-io/cypress/issues/6216). **Documentation Changes:** - Added [Cross Browser Testing Guide](https://on.cypress.io/cross-browser-testing) with helpful CI strategies to consider when running tests across multiple browsers. - Added [`Cypress.isBrowser()`](https://on.cypress.io/isbrowser) doc. **Misc:** - We now pass through errors caused when attempting to read arguments passed through [`config`](https://on.cypress.io/configuration-api). Addresses [#6279](https://github.com/cypress-io/cypress/issues/6279). - We fixed a broken 'Learn more' link within the Node.js Version panel of the Test Runner Settings. Addresses [#6237](https://github.com/cypress-io/cypress/issues/6237). - The browser icons in the Test Runner now display as images with the proper branding. Addresses [#6188](https://github.com/cypress-io/cypress/issues/6188). - We updated the styling of browser dropdown in the Test Runner to look more like a button. Addresses [#6298](https://github.com/cypress-io/cypress/issues/6298). - The timer in the Test Runner now always displays at a consistent length. Addresses [#6168](https://github.com/cypress-io/cypress/issues/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](https://on.cypress.io/debugging#Log-memory-and-CPU-usage). Addresses [#6169](https://github.com/cypress-io/cypress/issues/6169). - We added types for plugin events. Addresses [#6322](https://github.com/cypress-io/cypress/issues/6322). **Dependency Updates** - Added `@benmalka/foxdriver`. Addressed in [#1359](https://github.com/cypress-io/cypress/pull/1359). - Upgraded `@cypress/browserify-preprocessor` from `1.1.2` to `2.1.1`. Addressed in [#4308](https://github.com/cypress-io/cypress/pull/4308) and [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `bluebird` from `3.5.0` to `3.7.2`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `cachedir` from `1.3.0` to `2.3.0`. Addressed in [#4208](https://github.com/cypress-io/cypress/pull/4208) and [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `chai` from `3.5.0` to `4.2.0`. Addressed in [#2862](https://github.com/cypress-io/cypress/pull/2862) and [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `chai-as-promised` from `6.0.0` to `7.1.1`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `chalk` from `2.4.0` to `3.0.0`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `commander` from `2.15.1` to `4.0.1`. Addressed in [#4208](https://github.com/cypress-io/cypress/pull/4208) and [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `debug` from `2.15.1` to `4.0.1`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `execa` from `0.10.0` to `3.3.0`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226). - Added `firefox-profiler`. Addressed in [#1359](https://github.com/cypress-io/cypress/pull/1359). - Added `foxdriver`. Addressed in [#1359](https://github.com/cypress-io/cypress/pull/1359). - Upgraded `fs-extra` from `5.0.0` to `8.1.0`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `getos` from `3.1.1` to `3.1.4`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `is-ci` from `1.2.1` to `2.0.0`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `mocha` from `2.5.3` to `7.0.1`. Addressed in [#2703](https://github.com/cypress-io/cypress/pull/2703) and [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `listr` from `0.12.0` to `0.14.3`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `log-symbols` from `2.2.0` to `3.0.0`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226). - Added `marionette-client`. Addressed in [#1359](https://github.com/cypress-io/cypress/pull/1359). - Upgraded `ramda` from `0.24.1` to `0.26.1`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `sinon` from `3.2.0` to `8.1.1`. Addressed in [#2881](https://github.com/cypress-io/cypress/pull/2881) and [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `strip-ansi` from `3.0.1` to `6.0.0`. Addressed in [#1359](https://github.com/cypress-io/cypress/pull/1359). - Added `systeminformation`. Addressed in [#1359](https://github.com/cypress-io/cypress/pull/1359). - Upgraded `support-colors` from `5.5.0` to `7.1.0`. Addressed in [#4208](https://github.com/cypress-io/cypress/pull/4208) and [#4226](https://github.com/cypress-io/cypress/pull/4226). - Upgraded `untildify` from `3.0.3` to `4.0.0`. Addressed in [#4226](https://github.com/cypress-io/cypress/pull/4226).