Open Mode
What you'll learn​
- The different sections of the Cypress app in open mode
- The information surfaced in the app's Command Log
- How to use the Selector Playground to find unique selectors
- Debugging tools available in the app in open mode
The Cypress App has powerful features for creating, configuring, browsing, and most importantly running your tests once you open the app. Open mode is the heart of the Cypress testing experience.
Launchpad​

The Launchpad is your portal to Cypress, helping with onboarding, choosing a testing type and launching a browser.
Once you get comfortable with Cypress you might find you don't need the
Launchpad any more. In this case
you can run cypress open
with the --browser
and --component
or --e2e
options
to go straight to the Specs page.
Specs​

On choosing your browser in the Launchpad, you'll be presented with a list of your specs, their names, locations, and information about your latest recorded runs. Here you can launch specs by clicking them, create new blank or example specs, or search specs by name (handy for large test suites).
We've made the following spec data available directly on the Specs page:
Last updated​
This column tells you when the code of this spec was last updated, using local file data from git or your own filesystem. It surfaces the change history of your tests, so you can quickly find the most relevant specs as you're browsing your project.
This column will vary from machine to machine, as it reflects the state of the code as stored on that computer.
Latest runs​
This column shows the last time the spec was run, and the last four returned statuses. Results are scoped to your current git branch if available, falling back to the default branch if not, then finally all branches.
With this intelligence you can monitor, run, and fix tests locally within CI workflows, and then further dig into your results by clicking through to Cypress Cloud.
The runs data is sourced from Cypress Cloud so it will be the same everywhere.
Average duration​
This column indicates the time taken to run the entire spec file, averaged over the last four runs, so that you can quickly identify and take action to improve the performance of your long-running tests.
Again, this analysis comes from Cypress Cloud.
Flake annotation​
A test is considered to be flaky when it can pass and fail across multiple retry attempts without any code changes.
Specs with flaky tests are flagged with an indicator beside the spec name. This means you can easily discern which areas of your application might result in an unreliable user experience.
The flake indicator will display if any tests in the given spec have been flaky in your latest runs (limited to 4). Hovering over the indicator will show a tooltip with the following analytics, based off the last 50 runs:
- Rate (flaky runs divided by total runs)
- Severity (flaky rate at a glance)
- Last flaky (how many runs ago)
Clicking on the flake indicator will take you to the spec's Flaky Test Analytics in Cypress Cloud.
Running Specs​

To run a spec, simply click the row with the spec you would like to run. You will be taken to the Test Runner and the spec will execute. You can narrow down the list of specs by typing into the search bar (1).
It is also possible to run multiple specs sequentially using the
experimentalRunAllSpecs
(2).
experimentalRunAllSpecs
currently works with End to End Testing.
Running multiple specs sequentially is currently an experimental feature and it may change in the future. There are some known limitations outlined in this GitHub Discussion.
Running a large number of specs sequentially can consume more resources.
Runs​
When you configure the open source Cypress app to record tests to Cypress Cloud, you'll see data from your latest recorded runs directly in the Cypress app. This increased visibility into your test history allows you to debug your tests faster and more effectively, all within your local workflow.
If you're not sure whether you're logged in, you can always check using the profile control in the top right of the window.

Cypress uses Git to show runs for your branch. Ensure that version control is
properly configured and that you are sending Git information to Cypress Cloud. Under some
environment setups (e.g. docker
/docker-compose
), you may have to pass git
information using
custom environment variables.
If no runs are found for your current branch, all runs for your project are
shown as a fallback.
The title of each run is taken from the git commit message for that change, and clicking on it will take you to the corresponding run page in Cypress Cloud.
Debug​
The Debug page allows you to easily debug failed CI test runs from within the Cypress app. From this page, you can review, rerun, and debug failed CI test runs that are recorded to Cypress Cloud - all without leaving the Cypress app.

This feature eliminates the tedious process of switching between Cypress, your local editor, and CI output, in order to fix failed tests. It does this by enabling you to use the app to run only the tests that failed in your last recorded test run, as well as review the Test Replay and other artifacts like screenshots, videos, and logs from your tests.
What does the Debug page show?​
The Debug page shows the latest completed
test run that matches the HEAD
commit
(the commit currently checked out in the working directory) of your local
project. Users can see and switch to relevant runs within the Debug page. If no
run is found for your current commit, then Cypress shows the most recent run in
your branch's history up until the current commit. The first 100 failed
tests are listed, with a link to Cypress Cloud to review the full run.
To use this feature, you must ensure that git is properly configured for your
project and that you are sending git information to Cypress Cloud. Under some
environment setups (e.g. docker
/docker-compose
), you may have to pass git
information using
custom environment variables.
Cloud Run Notifications​
You can receive notifications in the Cypress app for recorded runs directly from Cypress Cloud. Learn more about Cloud Run Notifications.

Test Runner​
At the core of the app is the Test Runner itself. Cypress runs tests interactively, allowing you to see commands as they execute while also viewing the Application or Component Under Test, and exploring its DOM.
Like the experience of the Cypress app's open mode for debugging tests? You can get the same experience in Test Replay for runs recorded in CI in Cypress Cloud.

Command Log​
The left-hand side of the Test Runner is a visual representation of your test
suite. Each test block is properly nested and each test, when clicked, displays
every Cypress command executed within the test's block as well as any commands
executed in relevant before
, beforeEach
, afterEach
, and after
hooks.

Open files in your IDE​
There are some places in the Command Log that display a link to the relevant file where the code is located. Clicking on this link will open the file in your preferred file opener.

Time traveling​
Each command, when hovered over, restores the Application or Component Under Test (right-hand side) to the state it was in when that command executed. This allows you to time travel back to previous states when testing.
By default, Cypress keeps 50 tests worth of snapshots and command data for
time traveling. If you are seeing extremely high memory consumption in your
browser, you may want to lower the numTestsKeptInMemory
in your
Cypress configuration.
In the following example, hovering over the contains
command in the Command Log changes the state of the
AUT preview:

Cypress automatically travels back in time to a snapshot of when a hovered-over
command resolved. Additionally, since cy.contains()
finds DOM elements on the page, Cypress also highlights the element and scrolls
it into view (to the top of the page).
Also note that as we hover over the contains
command, Cypress reverts back to the URL that was present when the snapshot was
taken.

Pinning snapshots​
Each command, when clicked on, displays extra information in the dev tools console. Clicking also pins the Application or Component Under Test (right-hand side) to its previous state, or snapshot, when the command executed.
In the following example, clicking on the CLICK
command highlights it in
purple, and does three other things worth noting:

1. Pinned snapshots​
We have now pinned this snapshot. Hovering over other commands will not revert to them. This gives us a chance to manually inspect the DOM of our application under test at the time the snapshot was taken.
2. Event hitbox​
Since .click()
is an action command, that means we also
see a red hitbox at the coordinates the event took place.