Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

10.6.0 Release #4673

Merged
merged 11 commits into from
Aug 16, 2022
39 changes: 39 additions & 0 deletions content/_changelogs/10.6.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## 10.6.0

_Released 8/16/2022_

**Features:**

- Introduced a new Cypress experiment,
[`experimentalSingleTabRunMode`](/guides/references/experiments), for
Component Testing. When enabled, all specs will execute in a single tab,
similar to the execution behavior observed in Component Testing alpha in
Cypress 9, which can improve `run` mode performance, but can impact spec
isolation and reliability on large test suites. Addresses
[#22353](https://github.com/cypress-io/cypress/issues/22353).
- Enhanced the
[`CYPRESS_DOWNLOAD_PATH_TEMPLATE`](/guides/references/advanced-installation#Environment-variables)
environment variable interpolation to accept and replace `${version}` to allow
version-specific download paths to be honored. Addresses
[#5141](https://github.com/cypress-io/cypress/issues/5141),
[#16976](https://github.com/cypress-io/cypress/issues/16976), and
[#22864](https://github.com/cypress-io/cypress/issues/22864).

**Bugfixes:**

- Fixed an issue where the Firefox browser was not downloading files to the
expected directory in Windows. Fixes
[#17896](https://github.com/cypress-io/cypress/issues/17896).
- Fixed an issue in `cy.session()` where the unique session id logic was not
persisting registered session ids, which incorrectly allowed session ids to
override previously used session ids with different setups. Fixes
[#22381](https://github.com/cypress-io/cypress/issues/22381).
- Fixed an issue where absolute path glob manipulation was incorrectly breaking
`supportFile` and `specPattern` glob patterns that contained deep instances of
the working directory. Fixes
[#23361](https://github.com/cypress-io/cypress/issues/23361).
- Fixed an issue with the Specs list search that prevented full path matching.
Fixes [#22463](https://github.com/cypress-io/cypress/issues/22463) and
[#21879](https://github.com/cypress-io/cypress/issues/21879).
- Fixed an issue where Specs list popovers would not display a spec's full
filename. Fixes [#23064](https://github.com/cypress-io/cypress/issues/23064).
20 changes: 10 additions & 10 deletions content/guides/references/advanced-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ title: Advanced Installation

## Environment variables

| Name | Description |
| -------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `CYPRESS_INSTALL_BINARY` | [Destination of Cypress binary that's downloaded and installed](#Install-binary) |
| `CYPRESS_DOWNLOAD_MIRROR` | [Downloads the Cypress binary though a mirror server](#Mirroring) |
| `CYPRESS_CACHE_FOLDER` | [Changes the Cypress binary cache location](#Binary-cache) |
| `CYPRESS_RUN_BINARY` | [Location of Cypress binary at run-time](#Run-binary) |
| `CYPRESS_VERIFY_TIMEOUT` | Overrides the timeout duration for the `verify` command. The default value is 30000. |
| `CYPRESS_DOWNLOAD_PATH_TEMPLATE` | Allows to specify custom download url. Replaces ${endpoint}, ${platform}, ${arch} with respective values |
| ~~CYPRESS_SKIP_BINARY_INSTALL~~ | <Badge type="danger">removed</Badge> use `CYPRESS_INSTALL_BINARY=0` instead |
| ~~CYPRESS_BINARY_VERSION~~ | <Badge type="danger">removed</Badge> use `CYPRESS_INSTALL_BINARY` instead |
| Name | Description |
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `CYPRESS_INSTALL_BINARY` | [Destination of Cypress binary that's downloaded and installed](#Install-binary) |
| `CYPRESS_DOWNLOAD_MIRROR` | [Downloads the Cypress binary though a mirror server](#Mirroring) |
| `CYPRESS_CACHE_FOLDER` | [Changes the Cypress binary cache location](#Binary-cache) |
| `CYPRESS_RUN_BINARY` | [Location of Cypress binary at run-time](#Run-binary) |
| `CYPRESS_VERIFY_TIMEOUT` | Overrides the timeout duration for the `verify` command. The default value is 30000. |
| `CYPRESS_DOWNLOAD_PATH_TEMPLATE` | Allows to specify custom download url. Replaces ${endpoint}, ${version}, ${platform}, ${arch} with respective values |
| ~~CYPRESS_SKIP_BINARY_INSTALL~~ | <Badge type="danger">removed</Badge> use `CYPRESS_INSTALL_BINARY=0` instead |
| ~~CYPRESS_BINARY_VERSION~~ | <Badge type="danger">removed</Badge> use `CYPRESS_INSTALL_BINARY` instead |

## Install binary

Expand Down
6 changes: 3 additions & 3 deletions content/guides/references/best-practices.md
Original file line number Diff line number Diff line change
Expand Up @@ -799,9 +799,9 @@ beforeEach(() => {

One final question you should ask yourself is - is resetting the state even
necessary? Remember, Cypress already automatically enforces
[test isolation](/guides/core-concepts/test-isolation) by clearing state before
each test. Make sure you are not trying to clean up state that is already
cleaned up by Cypress automatically.
[test isolation](/guides/core-concepts/writing-and-organizing-tests#Test-Isolation)
by clearing state before each test. Make sure you are not trying to clean up
state that is already cleaned up by Cypress automatically.

If the state you are trying to clean lives on the server - by all means, clean
that state. You will need to run these types of routines! But if the state is
Expand Down
33 changes: 18 additions & 15 deletions content/guides/references/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ default values.
| `reporter` | `spec` | The [reporter](/guides/tooling/reporters) used during `cypress run`. |
| `reporterOptions` | `null` | The [reporter options](/guides/tooling/reporters#Reporter-Options) used. Supported options depend on the reporter. |
| `retries` | `{ "runMode": 0, "openMode": 0 }` | The number of times to retry a failing test. Can be configured to apply to `cypress run` or `cypress open` separately. See [Test Retries](/guides/guides/test-retries) for more information. |
| `testIsolation` | `legacy` | The [test isolation level](/guides/core-concepts/test-isolation) applied to ensure a clean slate between tests. |
| `watchForFileChanges` | `true` | Whether Cypress will watch and restart tests on test file changes. |

### Timeouts
Expand Down Expand Up @@ -208,7 +207,9 @@ object:
| `supportFile` | `cypress/support/e2e.{js,jsx,ts,tsx}` | Path to file to load before spec files load. This file is compiled and bundled. (Pass `false` to disable) |
| `specPattern` | `cypress/e2e/**/*.cy.{js,jsx,ts,tsx}` | A String or Array of glob patterns of the test files to load. |
| `excludeSpecPattern` | `*.hot-update.js` | A String or Array of glob patterns used to ignore test files that would otherwise be shown in your list of tests. [Please read the notes on using this.](#excludeSpecPattern) |
| `experimentalSessionAndOrigin` | `false` | Enables cross-origin and improved session support, including the [`cy.origin()`](/api/commands/origin) and [`cy.session()`](/api/commands/session) commands. This enables `testIsolation=strict` by default. Only available in end-to-end testing. |
| `slowTestThreshold` | `10000` | Time, in milliseconds, to consider a test "slow" during `cypress run`. A slow test will display in orange text in the default reporter. |
| `testIsolation` | `legacy` | The [test isolation level](/guides/core-concepts/writing-and-organizing-tests#Test-Isolation) applied to ensure a clean slate between tests. |

:::cypress-config-example{noJson}

Expand All @@ -234,6 +235,7 @@ object:
| `supportFile` | `cypress/support/component.js` | Path to file to load before spec files load. This file is compiled and bundled. (Pass `false` to disable) |
| `specPattern` | `**/*.cy.{js,jsx,ts,tsx}` | A glob pattern String or Array of glob pattern Strings of the spec files to load. <br><br>Note that any files found matching the `e2e.specPattern` value will be automatically **excluded.** |
| `excludeSpecPattern` | `['/snapshots/*', '/image_snapshots/*']` | A String or Array of glob patterns used to ignore spec files that would otherwise be shown in your list of specs. [Please read the notes on using this.](#excludeSpecPattern) |
`experimentalSingleTabRunMode` | `false` | Run all specs in a single tab, instead of creating a new tab per spec. This can improve run mode performance, but can impact spec isolation and reliability on large test suites. This experiment currently only applies to Component Testing.
| `slowTestThreshold` | `250` | Time, in milliseconds, to consider a test "slow" during `cypress run`. A slow test will display in orange text in the default reporter. |

:::cypress-config-example{noJson}
Expand Down Expand Up @@ -847,20 +849,21 @@ DEBUG=cypress:cli,cypress:server:specs

## History

| Version | Changes |
| --------------------------------------------- | ------------------------------------------------------------------------------------ |
| [10.0.0](/guides/references/changelog#10-0-0) | Reworked page to support new `cypress.config.js` and deprecated `cypress.json` files |
| [8.7.0](/guides/references/changelog#8-7-0) | Added `slowTestThreshold` option |
| [8.0.0](/guides/references/changelog#8-0-0) | Added `clientCertificates` option |
| [7.0.0](/guides/references/changelog#7-0-0) | Added `e2e` and `component` options. |
| [7.0.0](/guides/references/changelog#7-0-0) | Added `redirectionLimit` option. |
| [6.1.0](/guides/references/changelog#6-1-0) | Added `scrollBehavior` option. |
| [5.2.0](/guides/references/changelog#5-2-0) | Added `includeShadowDom` option. |
| [5.0.0](/guides/references/changelog#5-0-0) | Added `retries` configuration. |
| [5.0.0](/guides/references/changelog#5-0-0) | Renamed `blacklistHosts` configuration to `blockHosts`. |
| [4.1.0](/guides/references/changelog#4-12-0) | Added `screenshotOnRunFailure` configuration. |
| [4.0.0](/guides/references/changelog#4-0-0) | Added `firefoxGcInterval` configuration. |
| [3.5.0](/guides/references/changelog#3-5-0) | Added `nodeVersion` configuration. |
| Version | Changes |
| --------------------------------------------- | ------------------------------------------------------------------------------------- |
| [10.4.0](/guides/references/changelog#10-4-0) | Added `e2e.testIsolation` option. |
| [10.0.0](/guides/references/changelog#10-0-0) | Reworked page to support new `cypress.config.js` and deprecated `cypress.json` files. |
| [8.7.0](/guides/references/changelog#8-7-0) | Added `slowTestThreshold` option. |
| [8.0.0](/guides/references/changelog#8-0-0) | Added `clientCertificates` option. |
| [7.0.0](/guides/references/changelog#7-0-0) | Added `e2e` and `component` options. |
| [7.0.0](/guides/references/changelog#7-0-0) | Added `redirectionLimit` option. |
| [6.1.0](/guides/references/changelog#6-1-0) | Added `scrollBehavior` option. |
| [5.2.0](/guides/references/changelog#5-2-0) | Added `includeShadowDom` option. |
| [5.0.0](/guides/references/changelog#5-0-0) | Added `retries` configuration. |
| [5.0.0](/guides/references/changelog#5-0-0) | Renamed `blacklistHosts` configuration to `blockHosts`. |
| [4.1.0](/guides/references/changelog#4-12-0) | Added `screenshotOnRunFailure` configuration. |
| [4.0.0](/guides/references/changelog#4-0-0) | Added `firefoxGcInterval` configuration. |
| [3.5.0](/guides/references/changelog#3-5-0) | Added `nodeVersion` configuration. |

## See also

Expand Down
2 changes: 2 additions & 0 deletions content/guides/references/experiments.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,14 @@ configuration to Cypress.
| `experimentalInteractiveRunEvents` | `false` | Allows listening to the [`before:run`](/api/plugins/before-run-api), [`after:run`](/api/plugins/after-run-api), [`before:spec`](/api/plugins/before-spec-api), and [`after:spec`](/api/plugins/after-spec-api) events in the [setupNodeEvents](/guides/tooling/plugins-guide#Using-a-plugin) function during interactive mode. |
| `experimentalModifyObstructiveThirdPartyCode` | `false` | Whether Cypress will search for and replace obstructive code in third party `.js` or `.html` files. NOTE: Setting this flag removes [Subresource Integrity (SRI)](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity). |
| `experimentalSessionAndOrigin` | `false` | Enables cross-origin and improved session support, including the [`cy.origin()`](/api/commands/origin) and [`cy.session()`](/api/commands/session) commands. This enables `testIsolation=strict` by default. Only available in end-to-end testing. |
| `experimentalSingleTabRunMode` | `false` | Run all specs in a single tab, instead of creating a new tab per spec. This can improve run mode performance, but can impact spec isolation and reliability on large test suites. This experiment currently only applies to Component Testing. |
| `experimentalSourceRewriting` | `false` | Enables AST-based JS/HTML rewriting. This may fix issues caused by the existing regex-based JS/HTML replacement algorithm. See [#5273](https://github.com/cypress-io/cypress/issues/5273) for details. |

## History

| Version | Changes |
| --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| [10.6.0](/guides/references/changelog#10-6-0) | Added support for `experimentalSingleTabRunMode`. |
| [10.4.0](/guides/references/changelog#10-4-0) | Added support for `experimentalModifyObstructiveThirdPartyCode`. |
| [9.6.0](/guides/references/changelog#9-6-0) | Added support for `experimentalSessionAndOrigin` and removed `experimentalSessionSupport`. |
| [8.2.0](/guides/references/changelog#8-2-0) | Added support for `experimentalSessionSupport`. |
Expand Down