Skip to content

theintern/istanbul-loader

Repository files navigation

istanbul-loader

This is a webpack loader that uses istanbul-lib-instrument to add code coverage instrumentation to JavaScript files.

Installation

Install with

npm install @theintern/istanbul-loader --save-dev

Usage

Install the loader in a project and add an entry for it to the project's webpack.config:

module: {
    rules: [
        {
            test: /src\/.*\.ts$/,
            use: '@theintern/istanbul-loader'
        },
		...
    ]
}

Note that the istanbul-loader should be run after transpilers such as TypeScript. This means that it should come before transpilers in a loader list, or use enforce: 'post':

rules: [
    {
	    test: /src\/.(\.ts$/,
		use: [ '@theintern/istanbul-loader', 'ts-node' ]
	},
	...
]

or

rules: [
    {
	    test: /src\/.(\.ts$/,
		use: '@theintern/istanbul-loader',
		enforce: 'post'
	},
	...
]

Configuration

The rule test should only match source files, not all .ts or .js files, so as not to instrument tests or support files.

Options can be passed using the standard webpack options property:

rules: [
    {
	    test: /src\/.(\.ts$/,
		use: {
			loader: '@theintern/istanbul-loader',
			options: { config: 'tests/intern.json' }
		}
	},
	...
]

Currently the only option used by the loader is 'config', which should point to an Intern config file. The loader will use values for coverageVariable and instrumenterOptions from the Intern config, if present.

License

Intern is a JS Foundation project offered under the New BSD license.

© SitePen, Inc. and its contributors

About

A code coverage-instrumenting webpack loader

Resources

License

Stars

Watchers

Forks

Packages

No packages published