2016-07-28 7 views
1

Ich habe andere Konfigurationsdatei für Winkelmesser, und ich möchte eine Schluckaufgabe erstellen, die Winkelmesser für jede Konfigurationsdatei nacheinander ausführen. Hier ist mein eigentlicher Code:Wie wird der Winkelmesser mit einer anderen Konfigurationsdatei nacheinander ausgeführt?

gulp.src('conf/protractor.conf.*.js') 
     .pipe($.debug()) 
     .pipe($.foreach(function(stream, file){ 
     var configFileName = path.join('conf/', path.basename(file.path)); 

     console.log(configFileName); 

     gulp.src(path.join(conf.paths.e2e, '/**/*.js')) 
      .pipe($.protractor.protractor({ 
       configFile: configFileName, 
       args: args 
      })) 
      .on('error', function (err) { 
       // Make sure failed tests cause gulp to exit non-zero 
       console.log('Error catch by gulp'); 
       throw err; 
      }) 
      .on('end', function() { 
       // Close browser sync server 
       browserSync.exit(); 
       done(); 
       return stream; 
      }); 
     })); 

es Winkelmesser nur mit der ersten Konfigurationsdatei ausführen und dann aufhören, auch wenn die verschiedene conf-Datei von foreach gelistet wurden.

Hat jemand eine Idee von dem, was ich vermisse?

Dank

Antwort

1

fand ich eine Abhilfe: Statt Schluck zu versuchen, nur zu verwenden, zu tun, was ich tun will, ich ein kleines Shell-Skript erstellt. Nun, meine schluck Aufgabe übernehmen Winkelmesser Konfigurationsdatei Pfad von Befehlszeilenargument wie folgt aus:

var argv = require('minimist')(process.argv.slice(2)); 

if (!argv.conf || typeof argv.conf !== 'string') throw new Error('protractor configuration file path required'); 

function runProtractor (done) { 
    gulp.src(path.join(conf.paths.e2e, '/**/*.js')) 
     .pipe($.protractor.protractor({ 
     configFile: argv.conf 
     })) 
     .on('error', function (err) { 
     // Make sure failed tests cause gulp to exit non-zero 
     throw err; 
     }) 
     .on('end', function() { 
     // Close browser sync server 
     browserSync.exit(); 
     done(); 
     }); 
} 

gulp.task('protractor', ['protractor:src']); 
gulp.task('protractor:src', ['serve:e2e', 'webdriver-update'], runProtractor); 

Und ich ein Shell-Skript meine Ordner zu analysieren und gulp protractor für jede Konfigurationsdatei aufrufen:

#!/usr/bin/env bash 

for filename in conf/protractor.conf.*.js; do 
    gulp protractor --conf=$filename 
done 

Es wirkt wie ein Zauber.

Verwandte Themen