Skip to content

example/unit-tests-ts is not producing coverage for unit-test files #435

Closed

Description

@aslamj

Logs and screenshots
image

Versions
Cypress@7.1.0

Describe the bug
We are looking hard to make the cypress test-coverage for unit-tests for functionality written in TS and after trying the example/unit-tests-ts in this repo, we see that this example is still not working. Can someone work on this and make it work?

Activity

  1. aslamj commented on May 19, 2021

    @aslamj
    Author

    @bahmutov Can u please provide a solution to this issue? Of all the work we did to replace testing framework from Jest and Selenium to Cypress last year, this is the only limitation we are stuck now. Thanks.

  2. Markkop commented on Jun 15, 2021

    @Markkop

    Same here, can't find the root of the problem.

  3. emiljohansson commented on Jul 23, 2021

    @emiljohansson

    I was able to get this working by using webpack instead of browserify and I also included and got it working in my next.js project. Hopefully this might be useful for someone else.

    This ticket might be related: #361

    node -v
    v15.9.0
    /// <reference types="cypress" />
    const webpack = require('@cypress/webpack-preprocessor')
    const commonOptions = {
      module: {
        rules: [{
          test: /ts$/,
          use: [
            {
              loader: 'babel-loader',
              options: {
                presets: [
                  '@babel/preset-typescript'
                ]
              }
            }
          ]
        }]
      },
      resolve: {
        extensions: ['.tsx', '.ts', '.js', '.css']
      }
    }
    
    /**
     * @type {Cypress.PluginConfig}
     */
    module.exports = (on, config) => {
      const options = {
        webpackOptions: commonOptions,
        watchOptions: {}
      }
      on('file:preprocessor', webpack(options))
    
      require('../../../../task')(on, config)
      return config
    }

    I also cleared the presets in the babel config.

    {
      "plugins": ["istanbul"],
      "presets": []
    }
    
  4. jashworth commented on Sep 4, 2021

    @jashworth

    I also managed to get this working with webpack, with a similar configuration to the one above, but I've noticed that it produces warnings in the browser, such as

    image
    even though there's no "after each" hook in my test spec.

    The "after each" hook appears to come from @cypress/code-coverage (@3.9.10 in this case).

    image

  5. maapteh commented on Sep 20, 2021

    @maapteh

    @emiljohansson with your nextjs app you can better use babel.config.js else your production app ends up with istanbul wrappers :) Just pass a NODE_ENV test when executing your script, hope it helps!

    module.exports = (api) => {
      api.cache(true);
    
      const plugins = [];
    
      if (process.env.NODE_ENV === 'test') {
        plugins.push('istanbul');
      }
    
      return {
        presets: ['next/babel'],
        plugins,
      };
    };
    
  6. github-actions commented on Nov 2, 2026

    @github-actions

    🎉 This issue has been resolved in version 4.1.3 🎉

    The release is available on:

    Your semantic-release bot 📦🚀

  7. jennifer-shehane commented on Nov 2, 2026

    @jennifer-shehane
    Member

    Fixed in #1013.

    use-babelrc only compiled .js/.jsx files and couldn't resolve .ts imports, so TypeScript specs failed to bundle and .ts sources weren't instrumented. It now compiles .ts/.tsx with your .babelrc. Add @babel/preset-typescript (and a JSX preset such as @babel/preset-react for .tsx):

    {
      "presets": ["@babel/preset-typescript"],
      "plugins": ["istanbul"]
    }

    Working example: test-apps/unit-tests-ts. It runs in CI.

    If coverage is still missing after upgrading, open a new issue with your Cypress and plugin versions, your .babelrc, and a minimal reproduction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions