1.1.0 • Published 4 years ago

@eventmobi/babel-istanbul-instrumenter-loader v1.1.0

Weekly downloads
-
License
BSD-3-Clause
Repository
github
Last release
4 years ago

Babel istanbul instrumenter loader for webpack

Fork from deepsweet/istanbul-instrumenter-loader

Install

$ npm install @eventmobi/babel-istanbul-instrumenter-loader

Usage

Useful to work together with webpack and gulp-istanbul.

  1. webpack.spec.config.js
{ 
    test: /\.jsx?$/, 
    exclude: /(node_modules|build|test)/, 
    loader: 'babel-istanbul-instrumenter'
}
  1. gulpfile.js
var gulp = require('gulp'),
    gutil = require('gulp-util'),
    mocha = require('gulp-mocha'),
    istanbul = require('gulp-istanbul'),
    connect = require('gulp-connect'),
    runSeq = require('run-sequence'),
    webpack = require('webpack'),
    webpackSpecConfig = require('./webpack.spec.config');

// build specification bundle file
gulp.task('build:spec', function (done) {
  webpack(webpackSpecConfig, function (err, stats) {
    if (err) throw new gutil.PluginError("webpack-spec", err);
    //gutil.log("[webpack-spec]", stats.toString());
    done();
  });
});

gulp.task('coverage:server', function() { 
  var host = '0.0.0.0',
    port = 4004;

  gutil.log('Open your browser and visit http://' + host + ':' + port + 'to view the coverage report. ctrl+c to quit.');
  connect.server({
    root: './coverage/lcov-report',
    port: port,
    host: host
  });
});

// run test
gulp.task('test', ['build:spec'], function (done) {
  gulp.src('test/start.js')
    .pipe(mocha())
    .pipe(istanbul.writeReports({
      coverageVariable: '__coverage__',
      dir: './coverage',
      reporters: ['lcov', 'json', 'text', 'text-summary']
    }))
    .on('end', function () {
      runSeq('coverage:server', done);
    });
});
$ gulp test