Skip to content

Releases: cypress-io/cypress

0.14.3

19 Jul 07:29
Compare
Choose a tag to compare

Released 03/20/2016

Features:

  • Added cy.getCookies() command for easy chain-ability. Fixes #103.
  • Cypress now outputs its version when passed the --version argument
  • If you are not logged in on OSX, Cypress now issues a native system notification indicating to you that Cypress is running in your tray (many users often complained they could not tell Cypress was actually running)

Bugfixes:

  • Handle clearing cookies better when they are created on a path other than /. Fixes #104.
  • Issuing Cypress Commands inside of a Promise now works. Fixes #111.
  • 'Add Project' dialog is no longer lost on blur. Fixes #115.
  • Desktop windows that are transparent no longer lose their box shadow.

Misc:

  • cy.visit() callback functions: onBeforeLoad and onLoad are now invoked with the current runnables context instead of with cy. This makes accessing properties in your tests much easier.

0.10.0

19 Jul 07:27
Compare
Choose a tag to compare

Released 08/06/2015

Summary:

  • Cypress is now able to run all the tests, run in the terminal, and includes support for Linux and CI. Additionally, most of the functionality of he GUI Desktop App can now be accessed through command line arguments.
  • Because each operating system requires a specific build of Cypress - a new CLI tool has been created which abstracts away these differences and orchestrates the Desktop App regardless of which OS you are running.
  • This CLI tool is now published on NPM, though the documentation still needs to be written.
  • There is now a download service to access the latest version of Cypress and previous versions.
  • Cypress aims not only to make it easier to write tests, but after you build a test harness, it will make it easier to dive into failed tests (hat run in CI). This release paves the way for providing after-run results and allowing you to dive into those failures.

Breaking Changes:

  • Due to security upgrades, adding projects in previous versions will no longer work. Upgrade and everything should be okay.

Features:

  • The latest version of Cypress can be downloaded here: http://download.cypress.io/latest.
  • Cypress can alternatively be downloaded / installed / managed through the CLI utility.
  • Cypress can now be run through the terminal.
  • You can now run all of your tests inside of the GUI App.
  • You can use the CLI tool to run Cypress in CI. The documentation for this needs to be written, but it will be very simple to do. You will robably only have to write 2 lines in your CI scripts to run Cypress.
  • You can configure CI to use any reporter built into Mocha, and additionally we are adding JUnit XML output (for Jenkins) as a built in default.
  • You can write your own custom reporter which Cypress can use in CI.
  • Console output from your apps is suppressed while running in the terminal.

Bugfixes:

  • Several security problems with projects have been closed in preparation for running in CI.
  • Extensive memory profiling has been done and Cypress has implemented several strategies for aggressively causing garbage collection. The ebugging tools (which allow you to walk back in time through DOM snapshots, or access objects from previous tests) could exhaust all available emory in previous versions. This likely never affected most users, but if a user ran 1000's of tests (which have been written in Cypress) it ould bomb. Now Cypress only stores data for up to 50 tests, and will begin purging data past that. When run in the terminal, Cypress doesn't apply any of its debugging tools, so CI will be unaffected.
  • Several instances of memory leaks were plugged up.

Misc:

  • Everything except for the cypress driver is now minified.
  • Some users have reported problems upgrading previous versions. This is because we changed the name from "cypress" to "Cypress" including some inaries. If your upgrade does not finish you can simply redownload the latest version of Cypress or use the CLI tool to reinstall it.
  • Our build and testing processes have been upgraded to accommodate Linux builds.
  • Sinon object formatting during errors has been suppressed (when using spies/stubs) due to its horrendous performance when comparing deeply nested objects. This means you won't see the (mostly) useless error output from Sinon, but given Cypress debugging tools you can still inspect objects and figure out what went wrong.

0.14.2

19 Jul 07:29
Compare
Choose a tag to compare

Released 03/14/2016

Bugfixes:

  • Chaining more cy commands after using cy.wrap() now works. Fixes #114.
  • Cypress now handles events property when a DOM element is removed during a .click() event. As per the spec, if mousedown causes element removal then mouseup and click and focus events will not be fired. Additionally if removal happens during mouseup then click event will not be fired. Also updated the onConsole groups to only display and indicate the events which actually fired. Fixes #109.

Misc:

  • Removed fa-refresh icons next to suites and tests until this behavior has been reimplemented due to ID removal.
  • Removed resetting the runnable timeout when a page load event resolves. This prevents an edge case where the next test may show as timed out during cypress run.

0.14.1

19 Jul 07:29
Compare
Choose a tag to compare

Released 03/13/2016

Features:

  • Project ID's and cypress.json are now only generated once you start your Cypress server. Previously they were created initially when you choose the project folder. This now means you won't have to cleanup excess files if you accidentally select the wrong folder. Additionally you can now use Cypress 100% offline. Previously the GUI would block until the project had an ID but this restriction has been lifted.

Bugfixes:

  • The proxy server can now correctly proxy content on a ipv6 host only. We had to patch node core to get this in, as by default node prefers ipv4. We now concurrently test all hosts via dns.lookup to find the first one that responds. This updated behavior now matches how other clients, like curl, and browsers resolve hosts. Fixes #112.
  • Simplified how Cypress stores projects and fixed some edge cases where Cypress would send an outdated Project ID.
  • Prevent server from opening and immediately closing + re-opening when project is missing a Project ID and one is generated.
  • Using Cypress as a file server and serving a file that's part of a folder that has a name containing a space now works. Fixes #113.
  • The existing .cy cache and settings are now correctly copied again after an app update.

Misc:

  • Projects without an ID now error correctly when running in CI.
  • When Cypress cannot proxy http content due to a software error it will attach a x-cypress-error and x-cypress-stack to the HTTP request for easy inspection and debugging.
  • Cypress will now output its internal logger directly to the console when CYPRESS_DEBUG env var is set.
  • Replaced Ruby / Compass with node saas.

0.14.0

19 Jul 07:29
Compare
Choose a tag to compare

Released 03/08/2016

Summary:

  • This update represents mostly a lot of internal structure changes. We swapped out the underlying Desktop architecture and refactored all of the backend code to prepare for an open-source release.
  • If you choose to install Cypress from the CLI Tool you must update to the latest version 0.9.1. Just run npm install -g cypress and then you can run cypress install. You don't need to do anything if you update from within the Test Runner itself.

Features:

  • The Desktop App has been re-skinned with misc GUI enhancements such as help text, popovers, clearer errors, better loading indicators, etc.
  • The Desktop App's file size is now much smaller and unzips much faster. In the next release there will be a special CI build which removes the need to run XVFB.
  • Test IDs have been removed. You will no longer see Cypress insert IDs into your test files. This was a feature we implemented on day 1 - the idea being we could track test performance and do regression analysis. Unfortunately, it will be a long time before we actually implement the data science to make this happen. For the time being, IDs presented unnecessary technical complexity and challenges with no real upside. We recommend you remove all of your existing IDs. We've added a new command to the CLI tool that can do this in one shot. cypress remove:ids You may see IDs be reintroduced at a later time when we provide analytics.
  • .then() now supports a timeout option. Fixes #110.
  • All error messages from using the CLI have been rewritten and improved.
  • Cypress will now automatically prompt you to add a project when using cypress run on a project that has not yet been added.
  • Domain cookies are now proxied better. There's still more work to do before they are 100% fixed but now most typical domain cookie scenarios should 'just work'.
  • We've put together a new example repo called The Kitchen Sink. It demonstrates usage of every single Cypress command.

Bugfixes:

  • Using cypress run in OSX now works again.
  • Added fs polling support to fix issues where Cypress would not detect file changes.
  • Tests should reload inside of Cypress faster when they are changed.
  • Better error messages when a command times out waiting for a promise to resolve. Fixes #108.
  • cy.viewport('ipad-2') now displays by default in portrait. Landscape orientation is now properly landscape. Fixes #100.
  • .click() will now properly click within an element's bounding box when a position option is passed and the calculated coordinates are a fraction. This previously forced the click to happen outside of the element. Fixes #99.
  • clientX and clientY event properties are now correctly calculated for elements when the page is scrolled. Fixes #98.
  • .check() and .uncheck() now correctly filter down the subject when a value is passed as an option. Fixes #94.
  • The Test Runner will now display your email address when you have not set a name in GitHub.

Misc:

  • Improved element display in Command Log when multiple elements are part of an assertion. Fixes #96.
  • cy.reload() now returns the window object of the newly reloaded page. Fixes #105.

Known Issues:

  • Clicking the 'reload' icon next to a test that does not have an ID will not work anymore. We're reworking this feature to work without the presence of IDs.

0.9.1

19 Jul 07:27
Compare
Choose a tag to compare

Released 07/03/2015

Features:

  • cy.viewport() can now accept an orientation when providing a preset. Valid orientations are landscape and portrait.

Bugfixes:

  • The scaffolded spec_helper.js now correctly returns its object literal in the onConsole callback.
  • .type() now correctly logs its message to the Command Log when provided options.
  • .type() has been upgraded to handle situations where as it's typing, 3rd party code mutates the value either synchronously or asynchronously. The caret is automatically moved to the end position matching browser behavior.

Misc:

  • Deprecated Cypress.command, instead use Cypress.Log.command to output a Command Log. Updated scaffolding on new projects to reflect this change.
  • cy.contains() now outputs much more explicit error messages when given command options. Fixes #49.
  • cy.route() no longer validates response value when {respond: false} is passed in as options. Fixes #48.
  • .invoke() and .its() will now log out the $el if it's a DOM object, which will now correctly highlight the $el during a command revert. Additionally if these commands have been called on a DOM object, their onConsole message will include the DOM objects.

0.9.0

19 Jul 07:27
Compare
Choose a tag to compare

Released 07/02/2015

Summary:

  • cy.viewport() is a new command which will resize the viewport to a specified width and height. There is ow a default viewport size of 1000x660.

Features:

  • Your application's viewport dimensions will now automatically scale to fit regardless of your screen's size. This enables you to test resolutions larger than what your screen is capable of displaying. Additionally this fixes edge cases caused when there was a difference in viewports between users.
  • The viewport's dimensions will now dynamically display accurately as they are changed in the header area.
  • The viewport's scale will now dynamically display accurately as it is changed.
  • Each command will automatically restore the viewport to the dimensions at the time the command was issued. In other words, scrolling over each command will restore exactly what Cypress "saw" when it issued the command.
  • Several common viewport presets have been added for convenience

Misc:

  • Cypress now requires a viewport to be issued at all times. By default it is 1000x660 but can be changed in your cypress.json file with he keys: viewportWidth and viewportHeight.

Bugfixes:

  • Scrollbar styling is no longer hijacked by Cypress.

Misc:

  • Updated remote application iframe styles.

0.13.9

19 Jul 07:29
Compare
Choose a tag to compare

Released 01/28/2016

Bugfixes:

  • Prevent regression with not automatically scaling the viewport to fit into the window size

Misc:

  • Update links to match new documentation
  • .debug() has been zipped up - it no longer logs confusing debugging information and now logs information about the previously run command.
  • Cypress._, Cypress.$ $, Cypress.Promise, Cypress.Blob, Cypress.moment utilities have been moved off of cy and are now attached to Cypress. This is much more consistent with how the cy and Cypress API's work. You can continue to use these objects off of cy but this has been deprecated and you will see a warning message.

0.13.8

19 Jul 07:29
Compare
Choose a tag to compare

Released 01/24/2016

Features:

  • Added cy.reload() command which does a full page refresh. This is the same as the user hitting the 'Reload' button. Additionally it matches the same argument signature as window.location.reload.

Bugfixes:

  • Fixed situation where cy.viewport() would not restore correctly between tests. Previously this would cause subsequent tests to be issued at the modified cy.viewport(). Now viewport is automatically restored to the settings in your cypress.json file.

Misc:

  • Using .its() on a function or .invoke() on a property now logs a deprecation warning. In the next major release this will become a full error. It is valuable to make a distinction whether you're operating on a property vs a function, and this change improves overall readability with less confusion.
  • Cypress deprecations and warnings are now prefixed with: Cypress Warning: to indicate this message is coming from Cypress

0.13.7

19 Jul 07:29
Compare
Choose a tag to compare

Released 01/17/2016

Bugfixes:

  • Prevent error during element stringification on <svg>. Fixes #93.
  • Clarified on errors related to not being able to run in CI. Previously there was a "catch all" error indicating your Cypress API Key was invalid. This was oftentimes incorrect. More specific errors have been added.
  • .type() has been upgraded to handle current selection ranges. Previously if an <input> had a selection range as Cypress began to type, this would be ignored. Cypress now takes this into account and will type over any selected text (as native typing would do).

Misc:

  • All Cypress related services have been updated to use https. We are forcing https redirects for everything except for api.cypress.io, which would be a breaking change. By the next minor release we will force that as well. Once we make this change we will remove all versions below 0.13.7. So make sure you are not locking the Cypress version when running in CI. We periodically remove old Cypress versions which have security flaws and this is an example of one.