This is an example app used to showcase Cypress.io End-to-End (E2E) testing. The application demonstrates the use of most Cypress API commands. Additionally this example app is configured to run E2E tests in various CI platforms. Several workflows demonstrate the CI use of Cypress Docker images which provide convenient, pre-configured compatible environments for Cypress. The tests are also heavily commented.
To see the kitchen sink application, and to view the Cypress API commands demonstrated by the app, visit example.cypress.io.
For a full reference of our documentation, go to docs.cypress.io.
For an example payment application demonstrating real-world usage of Cypress.io End-to-End (E2E) testing, go to the cypress-io/cypress-realworld-app repository.
The following table lists live workflows from various CI providers. These each independently test the contents of this example repository. They run and record using Cypress Cloud with their results displaying centrally under Cypress Cloud ProjectId 4b7344
. Each CI provider shows its build status on its own site:
CI Provider | Workflow | Build Status | Docker example |
---|---|---|---|
AppVeyor | appveyor.yml | ||
CircleCI | .circleci/config.yml | ✅ | |
cypress-io/github-action | using-action.yml | ||
GitHub Actions | single.yml | ||
GitHub Actions | parallel.yml |
You can find all CI results recorded on the Cypress Cloud
This table shows additional examples of CI workflows. With the exception of GitHub Actions workflows, these are not live examples as in the table above and they may require modification before use. The GitHub Actions workflows are live and they run without recording to Cypress Cloud.
The Cypress documentation page CI Provider Examples provides some more examples with extensive guides for using Cypress with some of the most popular CI providers.
To run the tests from this repo on your local machine, first make sure your machine meets the Cypress System Requirements, including the installation of Node.js according to the version specified in the file .node-version.
Executing the following instructions will clone the repository, install dependencies and run Cypress:
git clone https://github.com/cypress-io/cypress-example-kitchensink.git
cd cypress-example-kitchensink
npm ci # install dependencies
npm run local:run # run Cypress headlessly
local:run
is a package.json script that starts a local webserver and then uses cypress run to run Cypress headlessly.
If you would like to run Cypress tests interactively, then run the following command which uses cypress open to run Cypress in headed mode. You can pick individual tests to run.
npm run local:open
As an alternative to using the local:open
and local:run
scripts, you can also start the server in one step and then run Cypress in a second step.
npm start # start server on port 8080
You can check that the server is running if you open a web browser and navigate to http://localhost:8080
.
Then in a separate terminal window execute either
npx cypress run # for headless mode
or
npx cypress open # for headed interactive mode
The scripts local:run
and local:open
use the start-test
alias of the npm module start-server-and-test to run ./scripts/start.js, which starts the webserver, waits for it to become ready, and then launches Cypress.
The start
script spawns a webserver using the npm module serve and displays the Kitchen Sink App on port 8080
.
If you would like to try out running tests in a Continuous Integration (CI) provider then you need to first fork the repository so that you have your own copy. Refer to the GitHub documentation to set up aliases for remote upstream
(to this repo) and remote origin
(to your fork) correctly.
You will also need to have an account with the CI provider you want to test with.
- Use the Cypress Documentation for instructions on how to use Cypress
- Read the Command Line Guide for run options
- Refer to the API documents to understand the Cypress API calls tested in this repo
- Read Installing Cypress for step-by-step information on installing Cypress in your own project
- For "how-to" questions and discussions, go to the Cypress Discord Chat and be part of the worldwide user community!
Check out the Contributing Guideline.
See Releases.