3.3.2
Released Released on June 26, 2019
Performance Improvements:
We fixed a regression introduced in 3.3.0 that was causing the Test Runner to do extremely unnecessary re-renders of the Command Log on any command change - leading to exponential performance degradation on any run. This was the root cause behind many users experiencing a reduction in performance when upgrading to
3.3.0or above. Fixes #4411 and #4313.We reduced memory consumption and improved the performance of running tests anytime you're inside of
cypress open. Fixes #2366.We no longer delay proxied responses with no body with status codes 1xx, 204, 304. This fixes a regression introduced in 3.2.0 where responses with these status codes were delayed when using a proxy. Fixes #4298.
Snapshots were previously being mistakenly stored then instantly deleted when
numTestsKeptInMemorywas set to 0. We now no longer record the snapshots at all whennumTestsKeptInMemoryis set to 0. This should slightly improve the performance of running tests with this setting. Fixes #4104 and #4164.
Bugfixes:
Cypress no longer watches files when run using
cypress run. This will fix some runs that were crashing with anENOSPCerror. Fixes #4283.Cypress now correctly handles
blurandfocusevents in situations where the browser has lost focus. Fixes #4039, #1176, and #1486.If the DOM element provided to .type() is already in focus, Cypress no longer attempts to click on the DOM element. This allows you to call
.focus()on elements that are focusable, but not necessarily clickable and type into them using.type(). Fixes #3001 and #4420.Some elements inside of a parent with CSS
overflow: hiddenthat flow outside of its parent are now properly considered hidden. #4161Elements that are inside a parent with CSS
position: absolutewhich is itself inside of a parent element withoverflow: hiddenare now properly considered visible. Fixes #4395 and #755.<option>and<optgroup>elements are now properly considered visible if it is contained within a visible<select>. Fixes #4473.<body>and<html>elements are now properly always considered visible. Fixes #4475.<td>and<tr>elements with CSSvisibility: collapseare now properly considered hidden. Fixes #4476.We now correctly handle form submission when using
.type('{enter}')on a form containing a button of typereset. Fixes #3909.If a site's
content-typeisnull,undefinedor cannot be determined duringcy.visit(), we now look at the content of the site and evaluate whether it looks like HTML. If it does look like HTML we no longer error and continue as if it the site'scontent-typeistext/html. #1727 #773 #3101.Previously Cypress would send the
authheader to any URLs that match the CORS origin of the originalauthheader. We now correctly only send theauthheaders when there is an exact match on the protection space. Fixes #4267.Requests that go through cy.visit() or cy.request() are now automatically retried on
ENOTFOUNDerrors. Fixes #4424 and #1755.Cypress now errors when the
bodyparameter passed to cy.request() contains a circular reference. Fixed in #4407.We fixed an issue where the
ignoreTestFilesconfiguration was being filtered out when passed via a command line flag, so in effect being ignored. Fixes #1696.Setting
NO_PROXYis now respected for HTTPS urls, as it should be. Fixes #4303.When running tests with non-string test titles, the screenshots now automatically stringify the test titles instead of throwing an error. Fixes #4310.
Cypress no longer incorrectly errors when calling
cy.window().screenshot(),cy.window().scrollTo()orcy.window().trigger()in an application with multiple iframes. Fixes #4396.Fixed a regression in 3.3.0 causing some users using proxy to see the "Browser was not launched through Cypress" error during
cypress open. This was caused by incorrectly routing requests for Cypress's internal server onlocalhostthrough the user's proxy. Fixes #4410.We fixed situations during a test failure where the Test Runner would throw
RangeError: Maximum call stack size exceeded. Fixes #1958 and #4346.Fixed issue where
window.performance.getEntriesByTypewould returnundefinedinstead of an array within application code when using cy.clock(). Fixes #3625.Passing an array of strings to
ignoreTestFilesno longer causes an error to throw. Fixes #4312.Fixed a visual bug when aliasing a non-route subject multiple times that would cause the Test Runner to show 'undefined' alias with empty counts. Fixes #4429.
Fixed regression introduced in 3.2.0 where Cypress would error because it could not find a type definition file for '../sinon'. Fixes #4272.
cy.writeFile() no longer errors in TypeScript files when passing an
optionsobject as its third argument. Fixes #4461.cy.stub() no longer errors in TypeScript files when evaluating returns. Fixes #4302.
Misc:
Warnings are now displayed when recording in
cypress runto warn when a project is nearing its organization's usage limit. They also clearly explain any consequences of going over a plan's usage limit. Addresses #4530.An warning icon with a tooltip is displayed in the Runs tab of the Test Runner when parallelization was disabled during the run due to being over the organization's usage limit. Addresses #4489.
You can now opt out of sending exceptions to
https://api.cypress.ioby settingCYPRESS_CRASH_REPORTS=0in your system environment variables. #4386We are now capturing Google Cloud build details when recording tests to the Cypress Dashboard. Addresses #3582.
The tests titles and headers in the Command Log no longer truncate with ellipsis when the text is longer than that width of the Command Log. Instead the text wraps so that all text is shown. Addresses #3947.
Special env vars are now truncated in
Cypress.env()and the debug logs. Addresses #4501.The
projectIdin now displayed in the configuration in the Test Runner settings like all other configuration values. Fixes #4500.When recording to the Dashboard, unrecognized warnings coming from the API server are now displayed in stdout. Fixes #4489.
Documentation Changes:
New Code Coverage doc. Addressed in #1744.
New Visual Testing doc. Addressed in #1744.
New Courses doc to list online courses that teach end-to-end testing with Cypress. Addressed in #1766.
Added a section about Hacking on Cypress in the Debugging doc. Addressed in #1783.
Added a section on how to opt out of sending exception data to Cypress in the Installing Cypress doc.
Dependency Updates
Removed
electron-positionersince it was no longer being used. Addressed in #4502.Upgraded
chokidarfrom1.7.0to3.0.1. Addressed in #4487.Upgraded
cookiefrom0.3.1to0.4.0. Addressed in #4329.Upgraded
dependency-treefrom6.5.0to7.0.2. Addressed in #4364.Upgraded
fs-extrafrom0.30.0to8.0.1. Upgraded in CLI package only to5.0.0. Addressed in #4418, #4419, #4422, #4437, #4555, #4559, #4571, #4581.Upgraded
mocha-junit-reporterfrom1.18.0to1.23.0. Addressed in #4417.Upgraded
pluralizefrom7.0.0to8.0.0. Addressed in #4438.Upgraded
shell-envfrom0.3.0to3.0.0. Addressed in #4466, #4467, and #4471.Upgraded
winstonfrom0.9.0to2.4.4. Addressed in #4538.We updated and removed some dependencies used for development.