This example uses @cypress/code-coverage plugin for Cypress.io test runner.
This repository aims to document how to set up code coverage in Cypress against a Typescript app.
The tricky part of this particular setup is to configure Istanbul to instrument your Typescript code.
See Cypress code coverage docs for more insight on how it works.
Running the example 🏃🏻First, make sure you have Yarn installed, and then:
You can run the example Typescript app:
Or run the Cypress tests with code coverage:
CODE_COVERAGE=true yarn test
⚠️
We're enabling code coverage behind an environment variable to only instrument our code in this scenario. Don't serve instrumented code to your users.
To see the code coverage report just do:
open coverage/lcov-report/index.html
After installing the handy @cypress/code-coverage
plugin, we will need to instrument our compiled TS code run by Cypress ( see the "Instrumenting the code" section below ).
Once your instrumentation is set up, we need to install a few extra dependencies to make Istanbul understand your Typescript source files:
yarn add -D \
@istanbuljs/nyc-config-typescript \
source-map-support \
ts-node
and make sure that Istanbul takes advantage of it by adding this configuration in your package.json
or in .nycrc.json
"nyc": { "extends": "@istanbuljs/nyc-config-typescript", "all": true },
If you're compiling TS though Babel, the easiest way is to use babel-plugin-istanbul
which will instrument the transpiled code for us. ( this is the approach taken on this example repo ):
yarn add -D babel-plugin-istanbul
In case you're compiling TS through the TSC, you'll need to manually make Istanbul instrument your TS source files and serve that to Cypress:
yarn nyc instrument --compact=false src instrumented
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4