Files
cypress/packages/driver
Barthélémy Ledoux dd559d9862 feat(component-testing): changes to the driver and reporter preparing for runner-ct (#14434)
* chore: update driver with component testing

* feat: bring ct changes in reporter

* test: update script utils test

* fix: type issue

* test: add test for new ct behavior in driver

runScript can now use promises instead of files.
Thi test this new behavior

* tests(ct): tests for the reporter runable store

* fix: remove changes on event handling in driver

* build: augment zip size to avoid zip errors

* test: add renderin tests for reporter multispec

* test: better matcher for runnableHistory

Co-authored-by: Jessica Sachs <jess@jessicasachs.io>

* test: make the runscripts eval tests clearer

* refactor(reporter): main interface instead of type

* fix(reporter): runInAction when specRunId changes

* refactor(driver): remove restartRunner function

Co-authored-by: Jessica Sachs <jess@jessicasachs.io>
2021-01-07 19:30:52 -05:00
..

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 workspace @packages/runner watch

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 workspace @packages/driver cypress:open

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 workspace @packages/driver start

# in separate terminal
yarn workspace @packages/driver cypress:run

# or for development
yarn workspace @packages/driver cypress:open

Debugging

In the browser

localStorage.debug = "cypress:driver"

Patches

  • sinon
  • unfetch to polyfill fetch. Added constructor function to point XMLHttpRequest to the application under test window.

Note: when creating a patch, make sure there is no package-lock.json file! Also rename the patch to have ".dev.patch" extension.