4.0.0
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:
- 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.