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 of 0.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 and Cypress.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 a cookie object instead of just the cookies 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 to 49.
  • 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 after XHR#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 is 20s.
  • 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!
Continue with GitHub
Continue with Google
or