Skip to content

Instantly share code, notes, and snippets.

@dima117
Created February 7, 2017 15:58
Show Gist options
  • Save dima117/4244d0cf7b89f90eb8c02205620506da to your computer and use it in GitHub Desktop.
Save dima117/4244d0cf7b89f90eb8c02205620506da to your computer and use it in GitHub Desktop.
/**
* coverage-report
* ===
*
* Формирует отчет о выполнении тестов в формате HTML (LCOV).
*
* **Опции**
*
* * *String* **target** — Результирующий таргет. По умолчанию `?.coverage.html`.
* * *String* **base** — Файл с результатами покрытия кода тестами. По умолчанию `?.phantomjs`.
*
* **Пример**
*
* ```javascript
* nodeConfig.addTech(require('./enb-techs/tests/coverage-report'), {
* target: '?.coverage.html',
* base: '?.phantomjs'
* });
* ```
*/
var istanbul = require('istanbul'),
helpers = require('./utils/helpers.js');
function buildReport(data, dir) {
var collector = new istanbul.Collector(),
report = istanbul.Report.create('lcov', { dir: dir });
collector.add(data);
report.writeReport(collector, false);
}
module.exports = require('enb/lib/build-flow').create()
.name('coverage-report')
.target('target', '?.coverage.html')
.useSourceText('base', '?.phantomjs')
.needRebuild(function() { return true; })
.builder(function(source) {
var data = helpers.parseJson(source).coverage;
if (data) {
buildReport(data, this.node.getDir());
return '<a href="lcov-report/index.html">View report</a>' +
'<script>document.location.href = "lcov-report/index.html";</script>';
}
return 'no data';
})
.createTech();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment