You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.3 KiB
JavaScript
62 lines
1.3 KiB
JavaScript
9 years ago
|
'use strict';
|
||
|
|
||
|
var gulp = require('gulp');
|
||
|
|
||
|
var $ = require('gulp-load-plugins')();
|
||
|
|
||
|
var wiredep = require('wiredep');
|
||
|
var karma = require('karma');
|
||
|
var concat = require('concat-stream');
|
||
|
var _ = require('lodash');
|
||
|
|
||
|
module.exports = function(options) {
|
||
|
function listFiles(callback) {
|
||
|
var bowerDeps = wiredep({
|
||
|
directory: 'bower_components',
|
||
|
dependencies: true,
|
||
|
devDependencies: true
|
||
|
});
|
||
|
|
||
|
var specFiles = [
|
||
|
options.src + '/**/*.spec.js',
|
||
|
options.src + '/**/*.mock.js'
|
||
|
];
|
||
|
|
||
|
var htmlFiles = [
|
||
|
options.src + '/**/*.html'
|
||
|
];
|
||
|
|
||
|
var srcFiles = [
|
||
|
options.src + '/{app,components}/**/*.js'
|
||
|
].concat(specFiles.map(function(file) {
|
||
|
return '!' + file;
|
||
|
}));
|
||
|
|
||
|
|
||
|
gulp.src(srcFiles)
|
||
|
.pipe(concat(function(files) {
|
||
|
callback(bowerDeps.js
|
||
|
.concat(_.pluck(files, 'path'))
|
||
|
.concat(htmlFiles)
|
||
|
.concat(specFiles));
|
||
|
}));
|
||
|
}
|
||
|
|
||
|
function runTests (singleRun, done) {
|
||
|
listFiles(function(files) {
|
||
|
karma.server.start({
|
||
|
configFile: __dirname + '/../karma.conf.js',
|
||
|
files: files,
|
||
|
singleRun: singleRun
|
||
|
}, done);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
gulp.task('test', ['scripts'], function(done) {
|
||
|
runTests(true, done);
|
||
|
});
|
||
|
gulp.task('test:auto', ['watch'], function(done) {
|
||
|
runTests(false, done);
|
||
|
});
|
||
|
};
|