diff --git a/content/_changelogs/10.6.0.md b/content/_changelogs/10.6.0.md new file mode 100644 index 0000000000..6cdff70078 --- /dev/null +++ b/content/_changelogs/10.6.0.md @@ -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). diff --git a/content/guides/references/advanced-installation.md b/content/guides/references/advanced-installation.md index 32a7d50173..a57c5393e2 100644 --- a/content/guides/references/advanced-installation.md +++ b/content/guides/references/advanced-installation.md @@ -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~~ | removed use `CYPRESS_INSTALL_BINARY=0` instead | -| ~~CYPRESS_BINARY_VERSION~~ | removed 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~~ | removed use `CYPRESS_INSTALL_BINARY=0` instead | +| ~~CYPRESS_BINARY_VERSION~~ | removed use `CYPRESS_INSTALL_BINARY` instead | ## Install binary diff --git a/content/guides/references/best-practices.md b/content/guides/references/best-practices.md index 22788b71ad..4436a5fdaf 100644 --- a/content/guides/references/best-practices.md +++ b/content/guides/references/best-practices.md @@ -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 diff --git a/content/guides/references/configuration.md b/content/guides/references/configuration.md index 1cb956fccd..ee1dd53c9d 100644 --- a/content/guides/references/configuration.md +++ b/content/guides/references/configuration.md @@ -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 @@ -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} @@ -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.

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} @@ -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 diff --git a/content/guides/references/experiments.md b/content/guides/references/experiments.md index d689e2f50a..db600debe6 100644 --- a/content/guides/references/experiments.md +++ b/content/guides/references/experiments.md @@ -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`. |