Home

Awesome

🚩 Looking for another real-world demonstration of Cypress in action? Check out the Cypress Real World App repository.

Conduit App renovate-app badge CircleCI Coverage Status Cypress.io Test Dashboard

Fork of applitools/cypress-applitools-webinar which is a fork of gothinkster/realworld "Conduit" blogging application.

Application

Tests

The tests are in cypress/integration folder

Full code coverage

Front- and back-end coverage for this application is collected using the @cypress/code-coverage plugin. You can run the locally instrumented server and client using npm run dev:coverage command. The backend coverage is exposed in server/server/index.js via endpoint listed in cypress.json (usually GET /__coverage). The frontend coverage is collected by instrumenting the web application source code on the fly, see the client/.babelrc file.

The combined report is saved in coverage/index.html after the tests finish:

Example full coverage report

The coverage is sent to Coveralls.io using command npm run coveralls from CircleCI AFTER partial coverage information from parallel E2E test runs is combined, see circle.yml file.

Combining code coverage from parallel runs

If you do not use an external code coverage service for combining code coverage reports, you need to combine those reports yourself like this repository is showing in circle.yml file. Several E2E cypress/run jobs run in parallel, each job saving its own coverage report folder. Then every job copies the report (using save-partial-coverage-report command) into a unique folder to avoid overwriting via reports from other machines. When all E2E jobs are finished, and reports are copied together, then the CI calls a command to merge the reports (see the merge-coverage-reports command that uses nyc merge tool).

To learn more, read the Cypress code coverage guide.

Requires Python 2.7 for node-gyp to be compiled.