Abhi
Abhi

Reputation: 4833

Code coverage for angular 2

How do you find the code coverage for angular 2 code? Is there any plugin for vs code editor or webstorm that I can use? I am using Jasmine and Karma for unit testing of my code.

Upvotes: 16

Views: 46562

Answers (4)

ahmadalibaloch
ahmadalibaloch

Reputation: 6021

If you want to see overall test coverage statistics than of course in Angular CLI you can just type, and see the bottom of your command prompt window

ng test --code-coverage

result:

console view of tests coverage

if you want to see component's individual coverage of tests follow these steps.

  1. npm install --save-dev karma-teamcity-reporter

  2. Add require('karma-teamcity-reporter') to list of plugins in karma.conf.js

  3. ng test --code-coverage --reporters=teamcity,coverage-istanbul

note that list of reporters is comma-separated, as we have added a new reporter, teamcity.

after running this command you can see the folder coverage in your dir and open index.html for a graphical view of test coverage.

enter image description here

You can also set the coverage threshold that you want to achieve, in karma.conf.js, like this.

coverageIstanbulReporter: {
      reports: ['html', 'lcovonly'],
      fixWebpackSourcePaths: true,
      thresholds: {
        statements: 90,
        lines: 90,
        branches: 90,
        functions: 90
      }
    },

Upvotes: 32

maia
maia

Reputation: 4360

I struggled with this one. The solution I found was

ng test --code-coverage

But make sure that in your karma.conf.js file, you have a reporter specified (I use 'coverage-istanbul')

e.g. reporters: ['coverage-istanbul']

The coverage report will be in a directory called 'coverage' in your root directory.

Upvotes: 1

Jason Swett
Jason Swett

Reputation: 45134

First install the dependencies.

npm install karma karma-jasmine karma-chrome-launcher karma-jasmine-html-reporter karma-coverage-istanbul-reporter

Then run ng test.

ng test --code-coverage

Then run the server that shows you your report.

http-server -c-1 -o -p 9875 ./coverage

You should see something like this:

enter image description here

I wrote a blog post about this here.

Upvotes: 7

Praneeth Reddy
Praneeth Reddy

Reputation: 424

ng test --code-coverage 

or

ng test --code-coverage --reporters=teamcity,coverage-istanbul

Upvotes: 0

Related Questions