diff options
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/text-summary.js')
-rw-r--r-- | vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/text-summary.js | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/text-summary.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/text-summary.js new file mode 100644 index 00000000..9537cbe2 --- /dev/null +++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/text-summary.js @@ -0,0 +1,93 @@ +/* + Copyright (c) 2012, Yahoo! Inc. All rights reserved. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ + +var path = require('path'), + util = require('util'), + mkdirp = require('mkdirp'), + defaults = require('./common/defaults'), + fs = require('fs'), + utils = require('../object-utils'), + Report = require('./index'); + +/** + * a `Report` implementation that produces text output for overall coverage in summary format. + * + * Usage + * ----- + * + * var report = require('istanbul').Report.create('text-summary'); + * + * @class TextSummaryReport + * @extends Report + * @module report + * @constructor + * @param {Object} opts optional + * @param {String} [opts.dir] the directory in which to the text coverage report will be written, when writing to a file + * @param {String} [opts.file] the filename for the report. When omitted, the report is written to console + */ +function TextSummaryReport(opts) { + Report.call(this); + opts = opts || {}; + this.dir = opts.dir || process.cwd(); + this.file = opts.file; + this.watermarks = opts.watermarks || defaults.watermarks(); +} + +TextSummaryReport.TYPE = 'text-summary'; +util.inherits(TextSummaryReport, Report); + +function lineForKey(summary, key, watermarks) { + var metrics = summary[key], + skipped, + result, + clazz = defaults.classFor(key, summary, watermarks); + 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 defaults.colorize(result, clazz); +} + +Report.mix(TextSummaryReport, { + synopsis: function () { + return 'text report that prints a coverage summary across all files, typically to console'; + }, + getDefaultConfig: function () { + return { file: null }; + }, + writeReport: function (collector /*, sync */) { + var summaries = [], + finalSummary, + lines = [], + watermarks = this.watermarks, + text; + collector.files().forEach(function (file) { + summaries.push(utils.summarizeFileCoverage(collector.fileCoverageFor(file))); + }); + finalSummary = utils.mergeSummaryObjects.apply(null, summaries); + lines.push(''); + lines.push('=============================== Coverage summary ==============================='); + lines.push.apply(lines, [ + lineForKey(finalSummary, 'statements', watermarks), + lineForKey(finalSummary, 'branches', watermarks), + lineForKey(finalSummary, 'functions', watermarks), + lineForKey(finalSummary, 'lines', watermarks) + ]); + lines.push('================================================================================'); + text = lines.join('\n'); + if (this.file) { + mkdirp.sync(this.dir); + fs.writeFileSync(path.join(this.dir, this.file), text, 'utf8'); + } else { + console.log(text); + } + this.emit('done'); + } +}); + +module.exports = TextSummaryReport; |