1 | /*
|
2 | Copyright (C) 2014 Yusuke Suzuki <utatane.tea@gmail.com>
|
3 |
|
4 | Redistribution and use in source and binary forms, with or without
|
5 | modification, are permitted provided that the following conditions are met:
|
6 |
|
7 | * Redistributions of source code must retain the above copyright
|
8 | notice, this list of conditions and the following disclaimer.
|
9 | * Redistributions in binary form must reproduce the above copyright
|
10 | notice, this list of conditions and the following disclaimer in the
|
11 | documentation and/or other materials provided with the distribution.
|
12 |
|
13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
|
14 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
15 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
16 | ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
17 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
18 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
19 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
20 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
21 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
22 | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23 | */
|
24 |
|
25 | ;
|
26 |
|
27 | var gulp = require('gulp');
|
28 | var mocha = require('gulp-mocha');
|
29 | var jshint = require('gulp-jshint');
|
30 | var eslint = require('gulp-eslint');
|
31 | var istanbul = require('gulp-istanbul');
|
32 |
|
33 | var SRC = [ 'doctrine.js' ];
|
34 |
|
35 | var TEST = [ 'test/*.js' ];
|
36 |
|
37 | var LINT = [
|
38 | 'gulpfile.js'
|
39 | ].concat(SRC);
|
40 |
|
41 | var ESLINT_OPTION = {
|
42 | 'rules': {
|
43 | 'quotes': 0,
|
44 | 'eqeqeq': 0,
|
45 | 'no-use-before-define': 0,
|
46 | 'no-underscore-dangle': 0,
|
47 | 'no-shadow': 0,
|
48 | 'no-constant-condition': 0,
|
49 | 'no-multi-spaces': 0
|
50 | },
|
51 | 'env': {
|
52 | 'node': true
|
53 | }
|
54 | };
|
55 |
|
56 | gulp.task('test', function (cb) {
|
57 | gulp.src(SRC)
|
58 | .pipe(istanbul()) // Covering files
|
59 | .on('finish', function () {
|
60 | gulp.src(TEST)
|
61 | .pipe(mocha({
|
62 | reporter: 'spec',
|
63 | timeout: 100000 // 100s
|
64 | }))
|
65 | .pipe(istanbul.writeReports()) // Creating the reports after tests runned
|
66 | .on('end', cb);
|
67 | });
|
68 | });
|
69 |
|
70 | gulp.task('lint', function () {
|
71 | return gulp.src(LINT)
|
72 | .pipe(jshint('.jshintrc'))
|
73 | .pipe(jshint.reporter(require('jshint-stylish')))
|
74 | .pipe(jshint.reporter('fail'))
|
75 | .pipe(eslint(ESLINT_OPTION))
|
76 | .pipe(eslint.formatEach('compact', process.stderr))
|
77 | .pipe(eslint.failOnError());
|
78 | });
|
79 |
|
80 | gulp.task('travis', [ 'lint', 'test' ]);
|
81 | gulp.task('default', [ 'travis' ]);
|