This is a webpack loader that uses istanbul-lib-instrument to add code coverage instrumentation to JavaScript files.
Install with
npm install @theintern/istanbul-loader --save-dev
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'
},
...
]
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.
Intern is a JS Foundation project offered under the New BSD license.
© SitePen, Inc. and its contributors