2015-04-05 3 views
1

При запуске gulp тесты проходят нормально. При смене файла ошибки забрасываются, а затем запускаются и проходят тесты. Если я вытащил браузер с запущенными тестами, это просто ошибки. Я заметил, что файлы не получают, как я указываю. Мой текущий каталог выглядит следующим образом приложение bower_components node_modules общественных JavaScripts тесты karma.conf.jsИспытания кармы пробирок Gulp - не могут найти переменную: угловой

gulpfile.js

var gulp = require('gulp'); 
var karma = require('gulp-karma'); 
var shell = require('gulp-shell'); 

var testFiles = [ 

]; 

var serverDir = [ 
    './views/*.js', 
    './test/**/*.js', 
    './test/*.js', 
    './routes/**/*.js', 
    './routes/*.js', 
    './models/**/*.js', 
    './models/*.js', 
    'app.js' 
]; 

gulp.task('test', function() { 
    // Be sure to return the stream 
    return gulp.src(testFiles) 
     .pipe(karma({ 
      configFile: 'public/javascripts/karma.conf.js', 
      action: 'watch' 
     })) 
     .on('error', function(err) { 
      // Make sure failed tests cause gulp to exit non-zero 
      //throw err; 
     }); 
}); 

gulp.task('default', ['test', 'testServer', 'watchServerFiles']); 

gulp.task('watchServerFiles', function() { 
    gulp.watch(serverDir, ['testServer']); 
}); 
gulp.task('testServer', shell.task('jasmine-node-karma test/api.spec.js')); 

karma.conf.js

module.exports = function(config) { 
    config.set({ 
    basePath: '', 
    frameworks: ['jasmine'], 
    files: [ 
     '../../bower_components/angular/angular.js', 
     '../../bower_components/angular-mocks/angular-mocks.js', 
     '../../bower_components/angular-resource/angular-resource.js', 
     '../../bower_components/angular-route/angular-route.js', 
     '../../bower_components/lodash/lodash.js', 
     './app.js', 
     './controllers/*.js', 
     './directives/*.js', 
     './services/*.js', 
     './*.js', 
     './test/*.js', 
     './test/**/*.js' 
    ], 
    reporters: ['progress'], 
    browsers: ['PhantomJS'], 
    plugins: [ 
     'karma-jasmine', 
     'karma-phantomjs-launcher' 
    ], 
    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    singleRun: false 
    }); 
}; 

ответ

3

Проверьте это thread

Оба большинства голосующих ответа хорошо работают, но я решил пойти с заменой самой глотки кармы самой кармой. Преимущество состоит в том, что вам не нужно дублировать список файлов в файлах gulpfile.js и karma.conf.js.

var gulp = require('gulp'); 
var karma = require('karma').server; 

gulp.task('tests', function(done) { 
    return karma.start({ 
     configFile: __dirname + '/test/karma.conf.js', 
     singleRun: true 
    }, done); 
});