UNPKG

1.09 kBJavaScriptView Raw
1/**
2 * Measure coverage and save report to file.
3 * @memberof module:ap-covering/lib
4 * @function measureCoverage
5 * @param {string} script - JavaScript script to measure
6 * @param {string[]} scriptArgs - Arguments to pass script.
7 * @param {object} {object} [options] - Optional settings.
8 * @param {string} [options.dir='coverage'] - Directory path to save.
9 */
10
11"use strict";
12
13const argx = require('argx'),
14 execcli = require('execcli');
15
16/** @lends measureCoverage */
17function measureCoverage(script, scriptArgs, options, callback) {
18 let args = argx(arguments);
19 callback = args.pop('function') || argx.noop;
20
21
22 script = args.shift('string');
23 scriptArgs = [].concat(args.shift('string|array') || []);
24 options = args.pop('object') || {};
25
26 let spawnArgs = ['cover', '--dir', options.dir || 'coverage', script, '--'].concat(scriptArgs);
27 exports.istanbul(spawnArgs, callback);
28}
29
30exports.istanbul = function (args, callback) {
31 execcli('istanbul', args, {
32 notfound: 'try `npm install istanbul -g`'
33 }, callback)
34};
35
36module.exports = measureCoverage;
37
38