cypress-io / cypress-io/code-coverage
Instrumenting bundled code with TypeScript
- Dominant language
- TypeScript
- Stars
- 445
- Forks
- 115
- PR merge metrics
- No merged PRs in 30d
Description
**Logs and screenshots**
Please provide debug logs by running Cypress from the terminal with `DEBUG=code-coverage` environment variable set, see the [Debugging](https://github.com/cypress-io/code-coverage#debugging) section of the README file.
```
nchiang@garchomp ~/repos/thavma (master) $ DEBUG=code-coverage yarn cypress open
code-coverage combined NYC options { 'report-dir': './coverage', reporter: [ 'html', 'json' ], extension: [ '.js', '.cjs', '.mjs', '.ts', '.tsx', '.jsx' ], excludeAfterRemap: false, all: true, extends: '@istanbuljs/nyc-config-typescript', include: [ 'pages/**', 'components/**', 'lib/**' ], exclude: [ 'pages/api/coverage.ts', '**/*.d.ts' ] } +0ms
Loaded env from /Users/nchiang/repos/thavma/.env.test.local
Loaded env from /Users/nchiang/repos/thavma/.env.local
Loaded env from /Users/nchiang/repos/thavma/.env.test
Loaded env from /Users/nchiang/repos/thavma/.env
GET /__/ 200 17.288 ms - -
GET /__cypress/runner/cypress_runner.css 200 18.783 ms - -
GET /__cypress/runner/cypress_runner.js 200 4.865 ms - -
GET /__cypress/runner/favicon.ico 200 1.298 ms - -
GET /__cypress/runner/fonts/fa-solid-900.woff2 200 1.584 ms - 76120
GET /__cypress/runner/fonts/mulish-latin-400-normal.woff2 200 1.354 ms - 31176
GET /__cypress/runner/fonts/mulish-latin-500-normal.woff2 200 1.916 ms - 31176
GET /__cypress/runner/fonts/open-sans-latin-400-normal.woff2 200 15.233 ms - 14380
GET /__cypress/iframes/__all 200 20.262 ms - -
Error running @cypress/browserify-preprocessor:
You are attempting to preprocess a TypeScript file, but do not have TypeScript configured. Pass the 'typescript' option to enable TypeScript support.
The file: /Users/nchiang/repos/thavma/cypress/support/index.ts
GET /__cypress/tests?p=cypress/support/index.ts 200 26.500 ms - 674
Error running @cypress/browserify-preprocessor:
You are attempting to preprocess a TypeScript file, but do not have TypeScript configured. Pass the 'typescript' option to enable TypeScript support.
The file: /Users/nchiang/repos/thavma/cypress/tests/api/handle.spec.ts
Error running @cypress/browserify-preprocessor:
You are attempting to preprocess a TypeScript file, but do not have TypeScript configured. Pass the 'typescript' option to enable TypeScript support.
The file: /Users/nchiang/repos/thavma/cypress/tests/api/users.spec.ts
Error running @cypress/browserify-preprocessor:
You are attempting to preprocess a TypeScript file, but do not have TypeScript configured. Pass the 'typescript' option to enable TypeScript support.
The file: /Users/nchiang/repos/thavma/cypress/tests/index.spec.ts
Error running @cypress/browserify-preprocessor:
You are attempting to preprocess a TypeScript file, but do not have TypeScript configured. Pass the 'typescript' option to enable TypeScript support.
The file: /Users/nchiang/repos/thavma/cypress/tests/join.spec.ts
GET /__cypress/tests?p=cypress/tests/api/handle.spec.ts 200 22.968 ms - 682
GET /__cypress/tests?p=cypress/tests/api/users.spec.ts 200 21.953 ms - 681
GET /__cypress/tests?p=cypress/tests/index.spec.ts 200 20.687 ms - 677
GET /__cypress/tests?p=cypress/tests/join.spec.ts 200 20.259 ms - 676
```
**Versions**
- What is this plugin's version? If this is NOT the latest [released version](https://github.com/cypress-io/code-coverage/releases) can you try the latest version, please? `3.9.11`
- If the plugin worked before in version X, but stopped after upgrading to version Y, please try the [released versions](https://github.com/cypress-io/code-coverage/releases) between X and Y to see where the breaking change was.
- What is Cypress version?
```
Cypress package version: 8.7.0
Cypress binary version: 8.7.0
Electron version: 14.1.0
Bundled Node version: 14.17.0
```
- What is your operating system? MacOS Big Sur
- What is the shell? Bash
- What is the Node version? `16.13.0`
- What is the NPM version? `8.1.0`
- How do you instrument your application? Cypress [does not instrument web application code](https://github.com/cypress-io/code-coverage#instrument-your-application), so you need to do it yourself. **Yes! But I can't seem to instrument the bundled Cypress test code.**
- When running tests, if you open the web application in regular browser, and open DevTools, do you see `window.__coverage__` object? Can you paste a screenshot?
- Is there `.nyc_output` folder? Is there `.nyc_output/out.json` file. Is it empty? Can you paste at least part of it so we can see the keys and file paths?
- Do you have any custom NYC settings in `package.json` (`nyc` object) or in other [NYC config files](https://github.com/istanbuljs/nyc#configuration-files)
```javascript
// nyc.config.js
/**
* Code coverage configuration for use with Cypress and Typescript.
* @see {@link https://docs.cypress.io/guides/tooling/code-coverage.html}
* @see {@link https://github.com/istanbuljs/nyc#selecting-files-for-coverage}
*/
module.exports = {
all: true,
extends: '@istanbuljs/nyc-config-typescript',
reporter: ['html', 'json'],
include: ['pages/**', 'components/**', 'lib/**'],
exclude: ['pages/api/coverage.ts', '**/*.d.ts'],
};
```
- Do you run Cypress tests in a Docker container? **No.**
**Describe the bug**
A clear and concise description of what the bug is.
I've been trying to follow [your guide](https://docs.cypress.io/guides/tooling/code-coverage#E2E-and-unit-code-coverage) on achieving 100% code coverage by combining unit tests with E2E integration tests. But, all my application code is written in TypeScript and when I use the `@cypress/code-coverage/use-babelrc` package, I get the following error:
```
Error running @cypress/browserify-preprocessor:
You are attempting to preprocess a TypeScript file, but do not have TypeScript configured. Pass the 'typescript' option to enable TypeScript support.
The file: /Users/nchiang/repos/thavma/cypress/support/index.ts
```
**Link to the repo**
Bugs with a reproducible example, like an open source repo showing the bug, are the most likely to be resolved.
[`thavmaclub/thavma`](https://github.com/thavmaclub/thavma) illustrates this issue; the [test coverage](https://app.codecov.io/gh/thavmaclub/thavma/blob/master/lib/api/handle.ts) reports that `lib/api/handle.ts` wasn't covered entirely, but I have [unit tests](https://github.com/thavmaclub/thavma/blob/master/cypress/tests/api/handle.spec.ts) just for that. However, those unit tests aren't included in the test coverage because they're not instrumented because of this bug.
**Example**
See [#217](https://github.com/cypress-io/code-coverage/issues/217) that is an excellent bug report example
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.