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 anoptions
object with anargs
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 theirfamily
field. Addresses #6243. - 💻 The
--browser
flag no longer acceptscanary
as its sole argument to run Chrome Canary. You now have to specifychrome:canary
to use the Chrome Canary browser. Addresses #6243. cy.writeFile()
now yieldsnull
instead of the contents written to the file in order to more align with the behavior offs
. 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 newchannel
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:
- ➕ Added Cross Browser Testing Guide with helpful CI strategies to consider when running tests across multiple browsers.
- ➕ Added
Cypress.isBrowser()
doc.
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
from1.1.2
to2.1.1
. Addressed in #4308 and #4226. - ⬆️ Upgraded
bluebird
from3.5.0
to3.7.2
. Addressed in #4226. - ⬆️ Upgraded
cachedir
from1.3.0
to2.3.0
. Addressed in #4208 and #4226. - ⬆️ Upgraded
chai
from3.5.0
to4.2.0
. Addressed in #2862 and #4226. - ⬆️ Upgraded
chai-as-promised
from6.0.0
to7.1.1
. Addressed in #4226. - ⬆️ Upgraded
chalk
from2.4.0
to3.0.0
. Addressed in #4226. - ⬆️ Upgraded
commander
from2.15.1
to4.0.1
. Addressed in #4208 and #4226. - ⬆️ Upgraded
debug
from2.15.1
to4.0.1
. Addressed in #4226. - ⬆️ Upgraded
execa
from0.10.0
to3.3.0
. Addressed in #4226. - ➕ Added
firefox-profiler
. Addressed in #1359. - ➕ Added
foxdriver
. Addressed in #1359. - ⬆️ Upgraded
fs-extra
from5.0.0
to8.1.0
. Addressed in #4226. - ⬆️ Upgraded
getos
from3.1.1
to3.1.4
. Addressed in #4226. - ⬆️ Upgraded
is-ci
from1.2.1
to2.0.0
. Addressed in #4226. - ⬆️ Upgraded
mocha
from2.5.3
to7.0.1
. Addressed in #2703 and #4226. - ⬆️ Upgraded
listr
from0.12.0
to0.14.3
. Addressed in #4226. - ⬆️ Upgraded
log-symbols
from2.2.0
to3.0.0
. Addressed in #4226. - ➕ Added
marionette-client
. Addressed in #1359. - ⬆️ Upgraded
ramda
from0.24.1
to0.26.1
. Addressed in #4226. - ⬆️ Upgraded
sinon
from3.2.0
to8.1.1
. Addressed in #2881 and #4226. - ⬆️ Upgraded
strip-ansi
from3.0.1
to6.0.0
. Addressed in #1359. - ➕ Added
systeminformation
. Addressed in #1359. - ⬆️ Upgraded
support-colors
from5.5.0
to7.1.0
. Addressed in #4208 and #4226. - ⬆️ Upgraded
untildify
from3.0.3
to4.0.0
. Addressed in #4226.