50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
|
/*
|
||
|
Copyright 2012-2015, Yahoo Inc.
|
||
|
Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
|
||
|
*/
|
||
|
"use strict";
|
||
|
|
||
|
function TextSummaryReport(opts) {
|
||
|
opts = opts || {};
|
||
|
this.file = opts.file || null;
|
||
|
}
|
||
|
|
||
|
function lineForKey(summary, key) {
|
||
|
var metrics = summary[key],
|
||
|
skipped,
|
||
|
result;
|
||
|
|
||
|
key = key.substring(0, 1).toUpperCase() + key.substring(1);
|
||
|
if (key.length < 12) {
|
||
|
key += ' '.substring(0, 12 - key.length);
|
||
|
}
|
||
|
result = [key, ':', metrics.pct + '%', '(', metrics.covered + '/' + metrics.total, ')'].join(' ');
|
||
|
skipped = metrics.skipped;
|
||
|
if (skipped > 0) {
|
||
|
result += ', ' + skipped + ' ignored';
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
TextSummaryReport.prototype.onStart = function (node, context) {
|
||
|
var summary = node.getCoverageSummary(),
|
||
|
cw,
|
||
|
printLine = function (key) {
|
||
|
var str = lineForKey(summary, key),
|
||
|
clazz = context.classForPercent(key, summary[key].pct);
|
||
|
cw.println(cw.colorize(str, clazz));
|
||
|
};
|
||
|
|
||
|
cw = context.writer.writeFile(this.file);
|
||
|
cw.println('');
|
||
|
cw.println('=============================== Coverage summary ===============================');
|
||
|
printLine('statements');
|
||
|
printLine('branches');
|
||
|
printLine('functions');
|
||
|
printLine('lines');
|
||
|
cw.println('================================================================================');
|
||
|
cw.close();
|
||
|
};
|
||
|
|
||
|
module.exports = TextSummaryReport;
|