Files
cypress/packages/driver

Driver

This is the core JavaScript library that is loaded inside the browser that is responsible for executing Cypress commands and managing the test runtime.

Building

The driver is actually consumed by the runner like any other npm module. To develop the driver and see changes reflected you need to run the watch task inside of the runner.

yarn lerna run watch --scope @packages/runner --stream

Developing

If you're developing on the driver, you'll want to run in the normal Cypress GUI mode, like you would when you're writing tests for your own Cypress projects.

yarn lerna run cypress:open --scope @packages/driver --stream

Read the runner's README.md for more information.

Running

You can also run all of the driver's tests locally. We don't really recommend this because it takes a long time, and we have this process optimized by load balancing the tests across multiple workers in CI.

It's usually easier to run the tests in the GUI, commit, and then see if anything broke elsewhere.

yarn lerna run start --scope @packages/driver --stream

# in separate terminal
yarn lerna run cypress:run --scope @packages/driver --stream

# or for development
yarn lerna run cypress:open --scope @packages/driver --stream

Debugging

In the browser

localStorage.debug = "cypress:driver"