forked from skratchdot/random-seed
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
62 lines (57 loc) · 1.72 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*eslint no-console: 0 */
'use strict';
var gulp = require('gulp');
var eslint = require('gulp-eslint');
var isparta = require('isparta');
var istanbul = require('gulp-istanbul');
var mocha = require('gulp-mocha');
var files = {
lint: ['*.js'],
src: ['index.js'],
test: ['test.js']
};
gulp.task('lint', function () {
return gulp.src(files.lint)
// eslint() attaches the lint output to the eslint property
// of the file object so it can be used by other modules.
.pipe(eslint())
// eslint.format() outputs the lint results to the console.
// Alternatively use eslint.formatEach() (see Docs).
.pipe(eslint.format('stylish'))
// To have the process exit with an error code (1) on
// lint error, return the stream and pipe to failAfterError last.
.pipe(eslint.failAfterError());
});
gulp.task('test', function () {
return gulp.src(files.src)
.pipe(istanbul({
instrumenter: isparta.Instrumenter,
includeUntested: true
}))
// Force `require` to return covered files
.pipe(istanbul.hookRequire())
.on('finish', function () {
gulp.src(files.test, {read: false})
// gulp-mocha needs filepaths so you can't have any plugins before it
.pipe(mocha({
reporter: 'spec'
}))
.on('error', function (err) {
console.error(err.toString());
this.emit('end');
})
.pipe(istanbul.writeReports({
dir: './coverage',
reporters: ['lcov', 'json', 'text-summary']
}));
});
});
gulp.task('watch', function () {
gulp.watch([files.lint], ['lint', 'test']);
});
// setup default task
gulp.task('default', ['lint', 'test', 'watch']);
// handle errors
process.on('uncaughtException', function (e) {
console.error(e);
});