123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /*
- 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) {
- const metrics = summary[key];
- key = key.substring(0, 1).toUpperCase() + key.substring(1);
- if (key.length < 12) {
- key += ' '.substring(0, 12 - key.length);
- }
- const result = [
- key,
- ':',
- metrics.pct + '%',
- '(',
- metrics.covered + '/' + metrics.total,
- ')'
- ].join(' ');
- const skipped = metrics.skipped;
- if (skipped > 0) {
- return result + ', ' + skipped + ' ignored';
- }
- return result;
- }
- TextSummaryReport.prototype.onStart = function(node, context) {
- const summary = node.getCoverageSummary();
- const cw = context.writer.writeFile(this.file);
- const printLine = function(key) {
- const str = lineForKey(summary, key);
- const clazz = context.classForPercent(key, summary[key].pct);
- cw.println(cw.colorize(str, clazz));
- };
- cw.println('');
- cw.println(
- '=============================== Coverage summary ==============================='
- );
- printLine('statements');
- printLine('branches');
- printLine('functions');
- printLine('lines');
- cw.println(
- '================================================================================'
- );
- cw.close();
- };
- module.exports = TextSummaryReport;
|