123 lines
3.7 KiB
Markdown
123 lines
3.7 KiB
Markdown
|
# karma-coverage
|
||
|
|
||
|
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/karma-runner/karma-coverage)
|
||
|
[![npm version](https://img.shields.io/npm/v/karma-coverage.svg?style=flat-square)](https://www.npmjs.com/package/karma-coverage) [![npm downloads](https://img.shields.io/npm/dm/karma-coverage.svg?style=flat-square)](https://www.npmjs.com/package/karma-coverage)
|
||
|
|
||
|
[![Build Status](https://img.shields.io/travis/karma-runner/karma-coverage/master.svg?style=flat-square)](https://travis-ci.org/karma-runner/karma-coverage) [![Dependency Status](https://img.shields.io/david/karma-runner/karma-coverage.svg?style=flat-square)](https://david-dm.org/karma-runner/karma-coverage) [![devDependency Status](https://img.shields.io/david/dev/karma-runner/karma-coverage.svg?style=flat-square)](https://david-dm.org/karma-runner/karma-coverage#info=devDependencies)
|
||
|
|
||
|
> Generate code coverage using [Istanbul].
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
The easiest way is to install `karma-coverage` as a `devDependency`,
|
||
|
by running
|
||
|
|
||
|
```bash
|
||
|
npm install karma karma-coverage --save-dev
|
||
|
```
|
||
|
|
||
|
## Configuration
|
||
|
|
||
|
For configuration details see [docs/configuration](docs/configuration.md).
|
||
|
|
||
|
## Examples
|
||
|
|
||
|
### Basic
|
||
|
|
||
|
```javascript
|
||
|
// 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/'
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
```
|
||
|
### CoffeeScript
|
||
|
|
||
|
For an example on how to use with [CoffeeScript](http://coffeescript.org/)
|
||
|
see [examples/coffee](examples/coffee). For an example of how to use with
|
||
|
CoffeeScript and the RequireJS module loader, see
|
||
|
[examples/coffee-requirejs](examples/coffee-requirejs) (and also see
|
||
|
the `useJSExtensionForCoffeeScript` option in
|
||
|
[docs/configuration.md](docs/configuration.md)).
|
||
|
|
||
|
### Advanced, multiple reporters
|
||
|
|
||
|
```javascript
|
||
|
// 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' },
|
||
|
]
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
```
|
||
|
|
||
|
### FAQ
|
||
|
|
||
|
#### Don't minify instrumenter output
|
||
|
|
||
|
When using the istanbul instrumenter (default), you can disable code compaction by adding the following to your configuration.
|
||
|
|
||
|
```javascript
|
||
|
// karma.conf.js
|
||
|
module.exports = function(config) {
|
||
|
config.set({
|
||
|
coverageReporter: {
|
||
|
instrumenterOptions: {
|
||
|
istanbul: { noCompact: true }
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
```
|
||
|
|
||
|
----
|
||
|
|
||
|
For more information on Karma see the [homepage].
|
||
|
|
||
|
|
||
|
[homepage]: https://karma-runner.github.io
|
||
|
[Istanbul]: https://istanbul.js.org
|