declare var module: any; declare function require(name:string); declare var __filename: string; declare var __dirname: string; import base = require("./base"); var gulp = require('gulp'); var path = require('path'); var $ = require('gulp-load-plugins')({lazy: true}); var _ = require('lodash'); var runSequence = require('run-sequence'); var gutil = $.util; class MochaRunner extends base.BaseTask { constructor() { super(); return this; } static taskName:string = 'mochaRunner'; static required:Array = [ 'mocha', 'chalk', 'chai', 'should', 'chai-as-promised' ]; static config(task, tasks, userOptions) { return { files: [ './test/**/*.Global.coffee', './test/**/*.Config.coffee', './test/**/*.Entity.coffee', './test/**/*.Resource.coffee', './test/**/*.Controller.coffee', './test/**/*.Spec.coffee' ], options: { slow: 2000, timeout: 10000, bail: true, ignoreLeaks: false, compilers: require('coffee-script/register'), recursive: true, asyncOnly: false } }; } static gulp(options, settings, task, tasks):void { MochaRunner.checkArguments(options, settings, task, tasks); var Mocha = require('mocha'); var mocha = new Mocha(settings.options); var stream = gulp .src(settings.files) .pipe($.foreach(function(stream, file){ var base = file.base; var filePath = file.path; var name = file.name; mocha.addFile(filePath); return stream; })).on('finish', function(){ console.log('==================end'); mocha.run(function(errorCount){ console.log('==================test'); }); }); } static clone(name:any, callback:any):void { var cloneRunner = _.cloneDeep(MochaRunner); cloneRunner.taskName = name; cloneRunner.gulp = callback; return cloneRunner; } } export = MochaRunner;