diff options
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/lcov.js')
-rw-r--r-- | vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/lcov.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/lcov.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/lcov.js new file mode 100644 index 00000000..87e01eaa --- /dev/null +++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/istanbul/lib/report/lcov.js @@ -0,0 +1,65 @@ +/* + 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'), + Report = require('./index'), + LcovOnlyReport = require('./lcovonly'), + HtmlReport = require('./html'); + +/** + * a `Report` implementation that produces an LCOV coverage file and an associated HTML report from coverage objects. + * The name and behavior of this report is designed to ease migration for projects that currently use `yuitest_coverage` + * + * Usage + * ----- + * + * var report = require('istanbul').Report.create('lcov'); + * + * + * @class LcovReport + * @extends Report + * @module report + * @constructor + * @param {Object} opts optional + * @param {String} [opts.dir] the directory in which to the `lcov.info` file. + * HTML files are written in a subdirectory called `lcov-report`. Defaults to `process.cwd()` + */ +function LcovReport(opts) { + Report.call(this); + opts = opts || {}; + var baseDir = path.resolve(opts.dir || process.cwd()), + htmlDir = path.resolve(baseDir, 'lcov-report'); + + mkdirp.sync(baseDir); + this.lcov = new LcovOnlyReport({ dir: baseDir, watermarks: opts.watermarks }); + this.html = new HtmlReport({ dir: htmlDir, watermarks: opts.watermarks, sourceStore: opts.sourceStore}); +} + +LcovReport.TYPE = 'lcov'; +util.inherits(LcovReport, Report); + +Report.mix(LcovReport, { + synopsis: function () { + return 'combined lcovonly and html report that generates an lcov.info file as well as HTML'; + }, + writeReport: function (collector, sync) { + var handler = this.handleDone.bind(this); + this.inProgress = 2; + this.lcov.on('done', handler); + this.html.on('done', handler); + this.lcov.writeReport(collector, sync); + this.html.writeReport(collector, sync); + }, + handleDone: function () { + this.inProgress -= 1; + if (this.inProgress === 0) { + this.emit('done'); + } + } +}); + +module.exports = LcovReport; |