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
'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);
|
|
});
|
|
};
|