How to get the code coverage report using Jest?

JavascriptJestjs

Javascript Problem Overview


Is there a way to have code coverage in the JavaScript Jest testing framework, which is built on top of Jasmine?

The internal framework does not print out the code coverage it gets. I've also tried using Istanbul, blanket, and JSCover, but none of them work.

Javascript Solutions


Solution 1 - Javascript

When using Jest 21.2.1, I can see code coverage at the command line and create a coverage directory by passing --coverage to the Jest script. Below are some examples:

I tend to install Jest locally, in which case the command might look like this:

npx jest --coverage

I assume (though haven't confirmed), that this would also work if I installed Jest globally:

jest --coverage

The very sparse docs are here

When I navigated into the coverage/lcov-report directory I found an index.html file that could be loaded into a browser. It included the information printed at the command line, plus additional information and some graphical output.

Solution 2 - Javascript

UPDATE: 7/20/2018 - Added links and updated name for coverageReporters.

UPDATE: 8/14/2017 - This answer is totally outdated. Just look at the Jest docs now. They have official support and documentation about how to do this.

@hankhsiao has got a forked repo where Istanbul is working with Jest. Add this to your dev dependencies

 "devDependencies": {
     "jest-cli": "git://github.com/hankhsiao/jest.git"
 }

Also make sure coverage is enabled in your package.json jest entry and you can also specify formats you want. (The html is pretty bad ass).

 "jest": {
     "collectCoverage": true,
     "coverageReporters": ["json", "html"],
 }

See Jest documentation for coverageReporters (default is ["json", "lcov", "text"])

Or add --coverage when you invoke jest.

Solution 3 - Javascript

Jan 2019: Jest version 23.6

For anyone looking into this question recently especially if testing using npm or yarn directly

Currently, you don't have to change the configuration options

As per Jest official website, you can do the following to generate coverage reports:

1- For npm:

You must put -- before passing the --coverage argument of Jest

npm test -- --coverage

if you try invoking the --coverage directly without the -- it won't work

2- For yarn:

You can pass the --coverage argument of jest directly

yarn test --coverage

Solution 4 - Javascript

This works for me:

 "jest": {
    "collectCoverage": true,
    "coverageReporters": ["json", "html"]
  },
  "scripts": {
    "test": "jest  --coverage"
  },

Run:

yarn/npm test

Solution 5 - Javascript

  1. Check the latest Jest (v 0.22): https://github.com/facebook/jest

  2. The Facebook team adds the Istanbul code coverage output as part of the coverage report and you can use it directly.

  3. After executing Jest, you can get a coverage report in the console and under the root folder set by Jest, you will find the coverage report in JSON and HTML format.

  4. FYI, if you install from npm, you might not get the latest version; so try the GitHub first and make sure the coverage is what you need.

Solution 6 - Javascript

You can run npx jest --coverage -- path/to/your/file.spec.js that will show coverage for affected files

If you want to view this in browser you can do as follows,

  1. Go to Browser and CMD+O.
  2. Navigate to your repo and search for coverage/lcov-report/index.html

Then you can visually see all the coverage areas. enter image description here

You can also refer to this link below, for more information https://dev.to/stevescruz/awesome-jest-tip-coverage-report-h5j

Solution 7 - Javascript

Configure your package.json file

> "test": "jest --coverage",

enter image description here

Now run:

yarn test

All the test will start running and you will get the report. enter image description here

Solution 8 - Javascript

If you are having trouble with --coverage not working it may also be due to having coverageReporters enabled without 'text' or 'text-summary' being added. From the docs: "Note: Setting this option overwrites the default values. Add "text" or "text-summary" to see a coverage summary in the console output." Source

Solution 9 - Javascript

If you are using the NestJS framework, you can get code coverage using this command:

npm run test:cov

Solution 10 - Javascript

I had the same issue and I fixed it as below.

  1. install yarn npm install --save-dev yarn
  2. install jest-cli npm install --save-dev jest-cli
  3. add this to the package.json "jest-coverage": "yarn run jest -- --coverage"

After you write the tests, run the command npm run jest-coverage. This will create a coverage folder in the root directory. /coverage/icov-report/index.html has the HTML view of the code coverage.

Solution 11 - Javascript

Try Chutzpah. I have just used it. And I blogged about it on how to integrate in Visual Studio.

This is how I did code coverage with Chutzpah: Code Coverage with Chutzpah

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAlex PalcuieView Question on Stackoverflow
Solution 1 - JavascriptccalvertView Answer on Stackoverflow
Solution 2 - JavascriptAdrian AdkisonView Answer on Stackoverflow
Solution 3 - JavascriptAhmed ElkoussyView Answer on Stackoverflow
Solution 4 - JavascriptDeen JohnView Answer on Stackoverflow
Solution 5 - JavascriptWinters HuangView Answer on Stackoverflow
Solution 6 - JavascriptAnusha BhatView Answer on Stackoverflow
Solution 7 - JavascriptSaif SiddiquiView Answer on Stackoverflow
Solution 8 - Javascriptthebkr7View Answer on Stackoverflow
Solution 9 - JavascriptFrancisco CardosoView Answer on Stackoverflow
Solution 10 - JavascriptLakshView Answer on Stackoverflow
Solution 11 - JavascriptfrancoroblesView Answer on Stackoverflow