1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 | "use strict";
|
12 |
|
13 | var argx = require('argx'),
|
14 | execcli = require('execcli'),
|
15 | findout = require('findout'),
|
16 | objnest = require('objnest');
|
17 |
|
18 |
|
19 | function define(script, options) {
|
20 | var args = argx(arguments);
|
21 | options = objnest.expand(args.pop('object') || {});
|
22 |
|
23 | var out = options.out || 'coverage';
|
24 |
|
25 | |
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 | function task(context, callback) {
|
32 | var logger = context.logger,
|
33 | verbose = context.verbose;
|
34 |
|
35 | var cmdArgs = ['cover'].concat(script.split(' ')).concat({
|
36 | dir: out
|
37 | });
|
38 | define.istanbul(cmdArgs, callback);
|
39 | }
|
40 |
|
41 | task.$desc = "Measure test coverage.";
|
42 | return task;
|
43 | }
|
44 |
|
45 | define.istanbul = function istanbul(args, callback) {
|
46 | function _resolveBy(cwd) {
|
47 | return findout.resolve('node_modules/.bin/istanbul', {
|
48 | safe: true,
|
49 | cwd: cwd
|
50 | });
|
51 | }
|
52 |
|
53 | var cmd = _resolveBy(process.cwd()) || _resolveBy(__dirname) || 'istanbul';
|
54 | execcli(cmd, args, {
|
55 | notfound: 'try `npm install istanbul -g`'
|
56 | }, callback);
|
57 | };
|
58 |
|
59 | module.exports = define;
|