Cypress - v0.16.0
Released 05/17/2016
Notes:
- Updating through the Desktop App in Linux does not work. To update please run
cypress install
from the command line. - We are still updating the docs to reflect all of these changes.
- All users must LOG IN AGAIN and re-add their projects. Sorry, we've changed the way we store local data.
Overview:
0.16.0
marks a significant change for Cypress. Before this we only issued commands using regular JavaScript and coordinated these with the backend server which is running. As of0.16.0
we are now tapping into the underlying browser automation libraries which enable us to exceed the limitations of the JavaScript sandbox. This means we have total control over the browser for more powerful automation tooling. The downside is that we have only implemented these API's for Chrome, and therefore running on multiple browsers will no longer work. This is a temporary setback as we'll be adding driver support for all of the other browsers over a period of time. You can read more about our browser management here.
Breaking Changes:
- Running tests in Cypress now requires either Chrome, Chromium, or Canary to be installed on your OS environment. We intend to expand support for more browsers in the future, but for now, only these 3 are supported.
- Removed support for
Cypress.Cookies.get
,Cypress.Cookies.set
andCypress.Cookies.remove
. - Changed return of cy.getCookies() to return an array of cookies, each with properties include name, value, etc.
- Changed return of cy.clearCookies() to return null (previously was returning Cookie that was cleared).
- Cypress.Cookies.debug() has been temporarily disabled and will be re-enabled later.
- Browsers are spawned in a Cypress specific profile so that we can maintain a clean state apart of your regular browsing usage. You will notice that your extensions are no longer installed. This is on purpose. 3rd party extensions can often get in the way of Cypress and cause failures. However, developer specific extensions for Angular, Ember, and React do not cause any issues but you'll want to reinstall them. You only have to install them once and they will persist.
- The
whitelist
callback function of Cypress.Cookies.defaults() now receives acookie object
instead of just thecookies name
as a string.
Features:
- When a project is initially run from the desktop app, you can now choose to run Cypress in a select number of browsers including: Chrome, Chromium, or Canary (depending on what's installed on your OS).
- Browser sessions are spawned independently of your existing profiles and we've disabled things like password saving / prompting, JavaScript popup blocking, and other features which get in the way of testing. Read more here
- We automatically spawn Chrome in a custom theme so you can visually distinguish the difference between browser sessions spawned with Cypress vs your normal sessions. We know this may feel a little jarring because you're used to running Cypress alongside your other tabs. You will now see 2 chrome icons in your dock and you'll need to switch between them. We know this is problematic and confusing and we're looking into changing the icon of the Chrome running Cypress so it's easier to tell the Chrome sessions apart.
- Added new commands to handle getting, setting, and clearing cookies: cy.clearCookie(), cy.getCookie(), and cy.setCookie().
- All the
cy.cookie
commands have been upgraded to take new options and can do much more powerful things outside of the JavaScript sandbox. - Upgraded the Chromium version running headlessly and in CI from
47
to49
. - There is a new cy.exec() command that can execute any arbitrary system command. Additionally there is a new execTimeout configuration option which is set to
60s
by default. Fixes #126. - There is a new numTestsKeptInMemory configuration option that controls how many test's snapshots and command data is kept in memory while tests are running. Reducing this number will reduce the memory used in the browser while tests are running. Whatever this number is - is how many tests you can walk back in time when inspecting their snapshots and return values. Addresses #142.
Bugfixes:
- Cypress taskbar icon now displays correctly in OS X dark theme. Fixes #132.
- Fixed issue where server error's stack traces were being truncated in the Desktop app rendering them impossible to debug. Fixes #133.
- woff Fonts are now properly served from a local file system when using Cypress' web server. Fixes #135.
- When an element's center is not visible the error message now includes the stringified element in question, and not
undefined
. - Typing into an
input[type=tel]
now works. Fixes #141. - XHR's which have their
onload
handler replaced afterXHR#send
is called is now properly accounted for. Fixes #143.
Misc:
- XHR requests for
.svg
files are no longer shown in the Command Log by default. Addresses #131. - Improved error when cy.request() fails. The request parameters are now included in the error. Addresses #134.
- When running a project in the new Cypress browser environment, if a new tab is opened, a message now displays discouraging the use of multiple tabs while testing. Addresses #9.
- When navigating directly to
localhost:2020
outside of the new Cypress browser environment, a message now displays discouraging running tests outside of the new Cypress browser environment. - If, for whatever reason, Cypress cannot communicate with the automation servers, your testing session will immediately end and you'll have the ability to re-spawn the browser.
- cy.fixture() now has a default timeout of
responseTimeout
which is20s
. - cy.fixture() can now properly time out and accepts an
options
argument that can override its default timeout. - Improved initial Desktop Application startup performance by about
1.5s
. - We now correctly store local data in each operating system's correct
Application Data
area. This will be more resilient to upgrades in the future. - Running Cypress in a linux VM on VirtualBox no longer displays "black screens".
- Our internal proxy no longer strips
HttpOnly
cookie flags. - Improved command errors and normalized many of them. Fixes #137.
- JavaScript popup blocking is now disabled and will not interfere with running tests. Fixes #125.
- We now capture synchronous errors from XHR
onreadystatechange
handlers.
Details
date
July 19, 2018, 7:30 a.m.
name
0.16.0
type
Minor
👇
Register or login to:
- 🔍View and search all Cypress releases.
- 🛠️Create and share lists to track your tools.
- 🚨Setup notifications for major, security, feature or patch updates.
- 🚀Much more coming soon!