|
| 1 | +# 5.0.0 |
| 2 | + |
| 3 | +*Released 8/19/2020* |
| 4 | + |
| 5 | +**Summary:** |
| 6 | + |
| 7 | +Cypress now includes support for test retries! Similar to how Cypress will retry assertions when they fail, test retries will allow you to automatically retry a failed test prior to marking it as failed. Read our new guide on Test Retries for more details. |
| 8 | + |
| 9 | +**Breaking Changes:** |
| 10 | + |
| 11 | +**{% fa fa-exclamation-triangle red %} Please read our {% url "Migration Guide" migration-guide %} which explains the changes in more detail and how to change your code to migrate to Cypress 5.0.** |
| 12 | + |
| 13 | +- The {% url "`cypress-plugin-retries`" https://github.com/Bkucera/cypress-plugin-retries %} plugin has been deprecated in favor of test retries built into Cypress. Addresses {% issue 1313 %}. |
| 14 | +- The {% url "`Cypress.Cookies.defaults()`" cookies %} `whitelist` option has been renamed to `preserve` to more closely reflect its behavior. Addressed in {% issue 7782 %}. |
| 15 | +- The `blacklistHosts` configuration has been renamed to {% url "`blockHosts`" configuration#Notes %} to more closely reflect its behavior. Addressed in {% issue 7622 %}. |
| 16 | +- The {% url "`cy.server()`" server %} `whitelist` option has been renamed to `ignore` to more closely reflect its behavior. Addresses {% issue 6642 %}. |
| 17 | +- `libgbm-dev` is now a requirement to run Cypress on Linux. Addressed in {% PR 7791 %}. |
| 18 | +- Values yielded by {% url "`cy.setCookie()`" setcookie %}, {% url "`cy.getCookie()`" getcookie %}, and {% url "`cy.getCookies()`" getcookies %} will now contain the `sameSite` property if specified. Addresses {% issue 6892 %}. |
| 19 | +- The `experimentalGetCookiesSameSite` configuration flag has been removed, since this behavior is now the default. Addresses {% issue 6892 %}. |
| 20 | +- The return type of the {% url "`Cypress.Blob`" blob %} methods `arrayBufferToBlob`, `base64StringToBlob`, `binaryStringToBlob`, and `dataURLToBlob` have changed from `Promise<Blob>` to `Blob`. Addresses {% issue 6001 %}. |
| 21 | +- Cypress no longer supports file paths with a question mark `?` in them. We now use the {% url "webpack preprocessor" https://github.com/cypress-io/cypress-webpack-preprocessor %} by default and it does not support files with question marks. Addressed in {% PR 7982 %}. |
| 22 | +- For TypeScript compilation of spec, support, and plugins files, the `esModuleInterop` option is no longer coerced to `true`. If you need to utilize `esModuleInterop`, set it in your `tsconfig.json`. Addresses {% issue 7575 %}. |
| 23 | +- Cypress now requires TypeScript 3.4+. Addressed in {% issue 7856 %}. |
| 24 | +- Installing Cypress on your system now requires Node.js 10+. Addresses {% issue 6574 %}. |
| 25 | +- In spec files, the values for the globals `__dirname` and `__filename` no longer include leading slashes. Addressed in {% PR 7982 %}. |
| 26 | + |
| 27 | +**Features:** |
| 28 | + |
| 29 | +- There's a new `retries` configuration option to configure the number of times to retry a failing test. Addresses {% issue 1313 %}. |
| 30 | +- {% url "`.click()`" click %}, {% url "`.dblclick()`" dblclick %}, and {% url "`.rightclick()`" rightclick %} now accept options `altKey`, `ctrlKey`, `metaKey`, and `shiftKey` to hold down key combinations while clicking. Addresses {% issue 486 %}. |
| 31 | +- You can now chain `.snapshot()` off of `cy.stub()` and `cy.spy()` to disabled snapshots during those commands. For example: `cy.stub().snapshot(false)`. Addresses {% issue 3849 %}. |
| 32 | + |
| 33 | +**Bugfixes:** |
| 34 | + |
| 35 | +- The error `Cannot set property 'err' of undefined` will no longer incorrectly throw when rerunning tests in the Test Runner. Fixes {% issue 7874 %} and {% issue 8193 %}. |
| 36 | +- Cypress will no longer throw a `Cannot read property 'isAttached' of undefined` error during `cypress run` on Firefox versions >= 75. Fixes {% PR 6813 %}. |
| 37 | +- The error `Maximum call stack size exceeded` will no longer throw when calling `scrollIntoView` on an element in the shadow dom. Fixes {% issue 7986 %}. |
| 38 | +- Cypress {% url "environment variables" environment-variables %} that accept arrays as their value will now properly evaluate as arrays. Fixes {% issue 6810 %}. |
| 39 | +- Elements having `display: inline` will no longer be considered hidden if it has child elements within it that are visible. Fixes {% issue 6183 %}. |
| 40 | +- When {% url "`experimentalShadowDomSupport`" experiments %} is enabled, {% url "`.parent()`" parent %} and {% url "`.parentsUntil()`" parentsuntil %} commands now work correctly in shadow dom as well as passing a selector to {% url "`.parents()`" parents %} when the subject is in the shadow dom. Fixed in {% PR 8202 %}. |
| 41 | +- Screenshots will now be correctly taken when a test fails in an `afterEach` or `beforeEach` hook after the hook has already passed. Fixes {% issue 3744 %}. |
| 42 | +- Cypress will no longer report screenshots overwritten in a `cy.screenshot()` {% url "`onAfterScreenshot`" screenshot#Get-screenshot-info-from-the-onAfterScreenshot-callback %} option as a unique screenshot. Fixes {% issue 8079 %}. |
| 43 | +- Taking screenshots will no longer fail when the screenshot names are too long for the filesystem to accept. Fixes {% issue 2403 %}. |
| 44 | +- The "last used browser" will now be correctly remembered during `cypress open` if a non-default-channel browser was selected. Fixes {% issue 8281 %}. |
| 45 | +- For TypeScript projects, `tsconfig.json` will now be loaded and used to configure TypeScript compilation of spec and support files. Fixes {% issue 7006 %} and {% issue 7503 %}. |
| 46 | +- `reporterStats` now correctly show the number of passed and failed tests when a test passes but the `afterEach` fails. Fixes {% issue 7730 %}. |
| 47 | +- The Developer Tools menu will now always display in Electron when switching focus from Specs to the Test Runner. Fixes {% PR 3559 %}. |
| 48 | + |
| 49 | +**Documentation Changes:** |
| 50 | + |
| 51 | +- We have a new guide on Test Retries. |
| 52 | +- Our {% url "Migration Guide" migration-guide %} has a new section for 5.0 migration. |
| 53 | + |
| 54 | +**Misc:** |
| 55 | + |
| 56 | +- Cypress now uses the {% url "webpack preprocessor" https://github.com/cypress-io/cypress-webpack-preprocessor %} by default to preprocess spec files. |
| 57 | +- The **Runs** tab within the Test Runner has a new improved design when the project has not been set up or login is required. Addressed in {% PR 8141 %}. |
| 58 | +- The type for the `Window` object returned from {% url "`cy.window()`" window %} is now correct. Addresses {% issue 7856 %}. |
| 59 | +- The type definition for Cypress's `ApplicationWindow` can now be extended. Addresses {% issue 7856 %}. |
| 60 | +- The type definition for `reporterOptions` has been added. Addresses {% issue 7877 %}. |
| 61 | + |
| 62 | +**Dependency Updates** |
| 63 | + |
| 64 | +- Upgraded Chrome browser version used during cypress run and when selecting Electron browser in cypress open from `80` to `83`. Addressed in {% PR 7791 %}. |
| 65 | +- Upgraded bundled Node.js version from `12.8.1` to `12.14.1`. Addressed in {% PR 7791 %}. |
| 66 | +- Upgraded `chalk` from `2.4.2` to `4.1.0`. Addressed in {% PR 7650 %}. |
| 67 | +- Upgraded `cli-table3` from `0.5.1` to `0.6.0`. Addressed in {% PR 7650 %}. |
| 68 | +- Upgraded `electron` from `8.3.1` to `9.2.0`. Addressed in {% PR 7791 %} and {% PR 8235 %}. |
| 69 | +- Upgraded `execa` from `1.0.0` to `4.0.2`. Addressed in {% PR 7650 %}. |
| 70 | +- Upgraded `express` from `4.16.4` to `4.17.1`. Addressed in {% PR 8179 %}. |
| 71 | +- Upgraded `fs-extra` from `8.1.0` to `9.0.1`. Addressed in {% PR 7650 %}. |
| 72 | +- Upgraded `log-symbols` from `3.0.0` to `4.0.0`. Addressed in {% PR 7650 %}. |
| 73 | +- Upgraded `tmp` from `0.1.0` to `0.2.1`. Addressed in {% PR 7650 %}. |
0 commit comments