2015-08-07 10 views
6

Ho un AngularJS applicazione di base e vuole avere tutto il mio terminale i comandi utilizzati con compiti gulp esempio $ gulp dev per il server di sviluppo e $ gulp unitTest per testare eccsorso e il karma, karma.conf.js file non esiste

Ho installato Gulp come da documento usando $ npm install --save-dev gulp con il mio gulpfile.js nella radice del file di progetto. Ho anche fatto lo stesso per il file di installazione e configurazione di karma.

Vale la pena affermare ora che voglio tutte le installazioni di npm con tag --save per spostare facilmente il progetto attorno all'ufficio e ai server.

Quando si aggiunge l'attività a Gulp, è necessario un percorso relativo (al modulo karma) per l'opzione configFile per trovare la configurazione, ma non trova i test.

seguenti gulpfile.js produce l'errore ERROR [config]: File karma.conf.js does not exist!

var gulp = require('gulp'), 
    // .... 
    karma = require('karma').Server; 

gulp.task('test', function(done) { 
    var karmaServerOptions = { 
     configFile: 'karma.conf.js', // works if relative path from ./node_modules/karma/lib/config.js 
     singleRun: true 
    }; 

    karma.start(
     karmaServerOptions, 
     function(exitStatus) { 
      done(exitStatus ? 'There are failing tests' : undefined); 
     } 
    ); 
}); 

karma.conf.js:

// Karma configuration 
// Generated on Thu Aug 06 2015 13:38:12 GMT+0100 (BST) 
module.exports = function(config) { 
    config.set({ 
     // base path that will be used to resolve all patterns (eg. files, exclude) 
     basePath: './', 
     // frameworks to use 
     // available frameworks: https://npmjs.org/browse/keyword/karma-adapter 
     frameworks: ['jasmine'], 
     // list of files/patterns to load in the browser 
     files: [ 
      // '**/*js', 
      'node_modules/angular/angular.js', 
      'app/**/*.js', 
      // 'unitTests/**/*Spec.js', 
      // 'unitTests/**/*spec.js' 
      'unitTests/**/*.js' 
     ], 
     // list of files to exclude 
     exclude: [], 
     // preprocess matching files before serving them to the browser 
     // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor 
     preprocessors: {}, 
     // test results reporter to use 
     // possible values: 'dots', 'progress' 
     // available reporters: https://npmjs.org/browse/keyword/karma-reporter 
     reporters: ['progress'], 
     // web server port 
     port: 9876, 
     // enable/disable colors in the output (reporters and logs) 
     colors: true, 
     // level of logging 
     // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG 
     logLevel: config.LOG_INFO, 
     // enable/disable watching file and executing tests whenever any file changes 
     autoWatch: true, 
     // start these browsers 
     // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher 
     browsers: ['Chrome'], 
     // Continuous Integration mode 
     // if true, Karma captures browsers, runs the tests and exits 
     singleRun: false 
    }) 
} 

nota: La matrice file è un po 'di confusione in quanto ha ancora alcuni, ma non tutti, dei miei esperimenti in esso.

risposta

15

Vedere gulp task can't find karma.conf.js per un espianto circa __dirname.

o usare:

var Server = require('karma').Server 
gulp.task('test', function (done) { 
    new Server({ 
    configFile: require('path').resolve('karma.conf.js'), 
    singleRun: true 
    }, done).start(); 
}); 
Problemi correlati