9

Ich glaube, es gibt ein Problem mit Winkel-Mocks und Foundation-Apps beim Versuch, einen Karma-Jasmin-Unit-Test zu laufen. Es könnte auch sein, dass ich etwas verpasst habe. Da es so viel Code zu sehen gibt, habe ich ein Beispielprojekt auf github zur Überprüfung veröffentlicht.Foundation-Apps Angular Site Integration mit Karma-Jasmine-Unit-Test

Im Grunde funktioniert die Website gut und Karma führt den Test aus, aber wenn Sie in der angular.mocks.module Funktion debuggen, finden Sie, dass Ihr Modul aus Ihrer App nicht geladen wird.

Wenn Sie Foundation-Apps aus der Situation nehmen, wird es gut funktionieren.

Könnte das ein Versionskonflikt sein, weil Foundation-Apps eine ältere Abhängigkeit für Angular-Mocks hat?

fatest on github

+1

Kratzen Sie den Abhängigkeitsgedanken. Ich habe übersehen, dass es eine devdependency in der bower.json Datei in Foundation-Apps ist. – Csharpfunbag

Antwort

2

schlug ich das gleiche Problem und meine Lösung war resultierende CSS-Datei (app.css - mit sass Aufgabe generiert) hinzufügen, um Karma-Konfiguration. Ohne diese Datei bekam i:

TypeError: 'null' is not an object (evaluating 'mediaQueries[key].replace') 

Hier meine gulp config:

var karma = require('karma').server; 
//...........// 
// Compiles Sass 
gulp.task('sass', function() { 
    return gulp.src('client/assets/scss/app.scss') 
    .pipe(plugins.sass({ 
     includePaths: paths.sass, 
     outputStyle: (isProduction ? 'compressed' : 'nested'), 
     errLogToConsole: true 
    })) 
    .pipe(plugins.autoprefixer({browsers: ['last 2 versions', 'ie 10']})) 
    .pipe(gulp.dest('./build/assets/css/')) 
    .pipe(plugins.livereload()); 
    }); 
/// ..... some other things here ....../// 
gulp.task('unit-test', function (done) { 
    var testFiles = [   
      {pattern:'./build/assets/js/foundation.js',watched:false}, 
      {pattern:'./build/assets/js/routes.js',watched:false}, 
      {pattern:'./build/assets/css/app.css',watched:false}, 
      {pattern:'./build/assets/js/templates.js',watched:false}, 
      {pattern:'./bower_components/angular-mocks/angular-mocks.js', watched:false}, 
      {pattern:'./client/assets/js/*.js'}, 
      {pattern:'./client/templates/**/*.js'}     
    ]; 

    karma.start({ 
      configFile:__dirname + '/karma.conf.js', 
      singleRun: true, 
      files: testFiles 
     }, done); 
}); 

Vorausgesetzt, dass Ihre Anwendung ist bereits gebaut, nur gulp unit-test laufen.