2016-12-20 70 views
2
gulp.task(
    'protractor', function() { console.log("xx4"); 

     var configObj = { 
      configFile: config.test + 'protractor.conf.js' 
     }; 
     configObj['args'] =[];//to be able to add multiple parameters 

     if (argv.suite) { 
      configObj['args'].push (
       '--suite', 
       argv.suite 
      ); 
     } 

     if (argv.env) { 
      configObj['args'].push (
       '--env', 
       argv.env 
      ); 
     } 

      argv.baseUrl = produrl; 
      console.log("devurl",produrl); 


     configObj['args'].push (
      '--baseUrl', 
      argv.baseUrl 
     ); 
     console.log("argv.baseUrl",argv.baseUrl); 
     return gulp.src([]) 
      .pipe(plumber({errorHandler: handleErrors})) 
      .pipe(protractor(configObj)) 
      .on(
       'error', function() { 
        gutil.log('E2E Tests failed'); 
        process.exit(1); 
       } 
      ); 
    } 
); 

var qaurl = require('./env-config/qa-baseurl'); 
var produrl = require('./env-config/prod-baseurl'); 
var localurl = require('./env-config/local-baseurl'); 


gulp.task('qa', function() { 

    console.log("argv.baseUrl",argv.baseUrl); 
}); 

gulp.task('local', function() { 
    console.log("xx3"); 
    return process.env.NODE_ENV = 'development'; 
}); 

當我運行一飲而盡量角器套argv.baseur

gulp protractor 

一飲而盡量角器QA

它應該爲QA網址argv.baseurl,它應該推到configobj。但configobj是量角器。

ReferenceError: configObj is not defined 

這是erro.r.

gulp.task(
    'protractor', ['env'],function() { console.log("xx4"); 

我可以做這樣的事情,但它不會再推動。此外,我不能讓QA或本地的參數讓首先任務是什麼?

gulp.task(
     'protractor', ['env'] 

我的意思是,先去ENV(ENV意味着QA或督促或本地)

當我從

一飲而盡量角器本地運行

如何我可以得到局部的ENV?

我怎樣才能使它推,這樣我可以在量角器使用

這是localurl

module.exports = "localhost:8080"; 

唯一網址

我凸輪使用setbaseurl任務[setbaseurl]但如何wiil獲取本地的

一飲而盡量角器地方?

回答

1

在陣列推送數據:

var configObj = {'configFile': 'protractor.conf.js', 
     'arg':''}; 
configObj['arg'] = []; 
for(var i = 0; i<5; i++){ 
    configObj['arg'].push('value of i::' + i); 
} 
console.log(a); 

輸出:

Object {configFile: "protractor.conf.js", arg: Array[5]} 

where arg is: 
0:"value of i::0" 
1:"value of i::1" 
2:"value of i::2" 
3:"value of i::3" 
4:"value of i::4" 

對於吞任務:

var gulp = require('gulp'); 
var taskName = ''; 
gulp.task(
    'protractor', function() { 
     taskName = process.argv[3]; 
    }, taskName.toString()); 

gulp.task('qa', function() { 
    console.log("qa task executing"); 
}); 

gulp.task('local', function() { 
    console.log("local task executing"); 
}); 

命令中使用:

gulp protractor qa 

輸出在控制檯上:

$ gulp protractor qa 
[13:18:52] Using gulpfile ~\Desktop\sample file\gulpfile.js 
[13:18:52] Starting 'protractor'... 
[13:18:52] Finished 'protractor' after 55 μs 
[13:18:52] Starting 'qa'... 
qa task executing 
[13:18:52] Finished 'qa' after 21 μs 

如果你想在conf.js文件中使用此configObj然後在ARGS部分,通過['--params.configObj', configObj] 其中"--params.configObj"在conf.js定義

params: { 
     configObj: '' 
     } 

要添加自引用您可以使用這樣的:

configObj['--params.configObj'] = configObj;