Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
karma-coverage
Advanced tools
Package description
The karma-coverage npm package is a plugin for the Karma test runner that generates code coverage reports. It uses Istanbul under the hood to instrument the code and then record the coverage data when the tests are run. The reports can be generated in various formats and can be integrated into continuous integration workflows to ensure code quality.
Coverage Reporting
This feature allows you to generate coverage reports in various formats such as HTML, LCOV, and JSON. The code sample shows how to configure Karma to use the karma-coverage plugin to generate an HTML coverage report.
module.exports = function(config) {
config.set({
// other Karma configuration...
reporters: ['progress', 'coverage'],
preprocessors: {
'**/*.js': ['coverage']
},
coverageReporter: {
type : 'html',
dir : 'coverage/'
}
});
};
Threshold Enforcement
This feature allows you to enforce coverage thresholds. If the code does not meet the specified thresholds for statements, branches, functions, or lines, Karma will exit with an error. The code sample demonstrates how to set these thresholds in the Karma configuration.
module.exports = function(config) {
config.set({
// other Karma configuration...
reporters: ['progress', 'coverage'],
coverageReporter: {
check: {
global: {
statements: 80,
branches: 80,
functions: 80,
lines: 80
}
}
}
});
};
nyc is the official Istanbul command line interface. It can produce coverage reports similar to karma-coverage but is more often used with Node.js applications directly, rather than through a test runner like Karma.
Jest is a testing framework that includes its own coverage reporting capabilities. It is an alternative to using Karma with karma-coverage, offering a more integrated solution with a focus on simplicity and ease of use.
c8 is a Node.js code coverage tool built on top of V8's built-in coverage. It is similar to nyc but uses the native coverage features of V8, providing potentially more accurate coverage information for Node.js applications.
Changelog
Readme
Generate code coverage using Istanbul.
The easiest way is to install karma-coverage
as a devDependency
,
by running
npm install karma karma-coverage --save-dev
For configuration details see docs/configuration.
// karma.conf.js
module.exports = function(config) {
config.set({
files: [
'src/**/*.js',
'test/**/*.js'
],
// coverage reporter generates the coverage
reporters: ['progress', 'coverage'],
preprocessors: {
// source files, that you wanna generate coverage for
// do not include tests or libraries
// (these files will be instrumented by Istanbul)
'src/**/*.js': ['coverage']
},
// optionally, configure the reporter
coverageReporter: {
type : 'html',
dir : 'coverage/'
}
});
};
For an example on how to use with CoffeeScript
see examples/coffee. For an example of how to use with
CoffeeScript and the RequireJS module loader, see
examples/coffee-requirejs (and also see
the useJSExtensionForCoffeeScript
option in
docs/configuration.md).
// karma.conf.js
module.exports = function(config) {
config.set({
files: [
'src/**/*.js',
'test/**/*.js'
],
reporters: ['progress', 'coverage'],
preprocessors: {
'src/**/*.js': ['coverage']
},
coverageReporter: {
// specify a common output directory
dir: 'build/reports/coverage',
reporters: [
// reporters not supporting the `file` property
{ type: 'html', subdir: 'report-html' },
{ type: 'lcov', subdir: 'report-lcov' },
// reporters supporting the `file` property, use `subdir` to directly
// output them in the `dir` directory
{ type: 'cobertura', subdir: '.', file: 'cobertura.txt' },
{ type: 'lcovonly', subdir: '.', file: 'report-lcovonly.txt' },
{ type: 'teamcity', subdir: '.', file: 'teamcity.txt' },
{ type: 'text', subdir: '.', file: 'text.txt' },
{ type: 'text-summary', subdir: '.', file: 'text-summary.txt' },
]
}
});
};
When using the istanbul instrumenter (default), you can disable code compaction by adding the following to your configuration.
// karma.conf.js
module.exports = function(config) {
config.set({
coverageReporter: {
instrumenterOptions: {
istanbul: { noCompact: true }
}
}
});
};
For more information on Karma see the homepage.
FAQs
A Karma plugin. Generate code coverage.
The npm package karma-coverage receives a total of 1,245,364 weekly downloads. As such, karma-coverage popularity was classified as popular.
We found that karma-coverage demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.