2015-08-07 3 views
6

ich eine grundlegende AngularJS App haben und wollen, dass alle meine Terminal-Befehl laufen mit großen Schluck Aufgaben haben zB $ gulp dev für den Entwicklungs-Server und $ gulp unitTest zum Testen usw.schluck und Karma, Datei karma.conf.js existiert nicht

Ich habe Gulp nach den Docs mit $ npm install --save-dev gulp mit meiner gulpfile.js im Stammverzeichnis der Projektdatei installiert. Ich habe das selbe auch für Karmas Installations- und Konfigurationsdatei getan.

Es ist wert, jetzt zu sagen, dass ich alle npm Installationen getaggt mit --save für leicht verschieben das Projekt um das Büro und die Server haben möchte.

Wenn es darum geht, die Aufgabe zu Gulp hinzufügen Ich muss uns einen relativen (zum Karma-Modul) Pfad für die configFile Option, um die Konfiguration zu finden, aber dann Es findet die Tests nicht.

// 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 
    }) 
} 

Anmerkung: Die Dateien Array ist ein bisschen ein Durcheinander, wie es noch einige hat,

folgende gulpfile.js den Fehler 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 produziert aber nicht alle meiner Experimente darin.

Antwort

15

Siehe gulp task can't find karma.conf.js für eine Explantation über __dirname.

oder -nutzung:

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