2014-04-29 16 views
5

Ich habe Grund Gulp Aufgaben und der Grund Jasmine Testläufer aufgebaut. Wie verwende ich Gulp, um meine Jasmine-Tests für eine Datei zu speichern und mir die Ausgabe zu zeigen? Wo in der Pipeline sollte Jasmine gehen?Mit Gulp.js Jasmin-Tests automatisch ausführen?

Ich bin neu in diesen beiden Bibliotheken und JS bauen und Unit-Test-Systeme im Allgemeinen, so unsicher über die Themen und bewährte Verfahren und ich habe nichts gefunden online, dass :-)

für mich Grund genug ist

Antwort

2

Sie Gebrauch von gulp.watch machen können, Uhren diese Dateien und tut etwas, wenn sich eine Datei ändert.

Sie könnten eine Aufgabe wie diese machen, oder einfach nur die gulp.watch in einer anderen Aufgabe verwenden.

gulp.task('watch', function() { 
    gulp.watch('tests/**/*', ['jasmine']); 
}); 
+0

Wenn dies zu tun, durch die Tests benötigten Dateien nicht erneut geladen werden, wenn die Jasmin Aufgabe erneut ausgeführt wird, so dass diese hilft nicht wirklich; Sie müssen den Schluck immer noch neu starten, wenn Sie eine Nicht-Test-Datei ändern. – avh

+0

Welche Version verwenden Sie? Es sollte damit funktionieren [commit] (https://github.com/sindresorhus/gulp-jasmine/pull/5). –

+0

Ich benutze Version 0.2.0, die die neueste zu sein scheint – avh

0

Verwenden Sie dieses Skript, um Ihre Tests auszuführen. Sie müssen Karma einrichten, damit Ihre Dateien angezeigt werden.

Diese beiden Parameter sind Sie nach:

... 
singleRun: false, 
autoWatch: true, 
... 

THE SCRIPT:

'use strict'; 

var gulp = require('gulp'); 
var wiredep = require('wiredep'); 
var karmaServer = require('karma').Server; 

/** 
* Run the unit tests 
*/ 
gulp.task('test', ['templates'], function() { 
    var bowerDeps = wiredep({ 
     directory: 'src/bower_components', 
     exclude: ['exclude_some_thing_you_dont_need'], 
     dependencies: true, 
     devDependencies: true 
    }); 

    // This will jQuery to the start so that AngularJS won't use jqLite 
    bowerDeps.js.unshift('src/bower_components/jquery/dist/jquery.js'); 

    var testFiles = bowerDeps.js.concat([ 
     'src/app/app.js', // loading the module first to make Karma avoid nomod-errors 
     'src/{app,components}/**/*.js', 
     '.tmp/templates/*.js',  // HTML-templates converted to JS for directives/etc 
     'test/unit/**/*.js' 
    ]); 

    new karmaServer({ 
     files: testFiles, 
     singleRun: false, 
     autoWatch: true, 
     configFile: __dirname + '/../test/karma.conf.js' 
    }).start(); 
}); 
Verwandte Themen