2016-12-20 4 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

он должен сделать argv.baseurl для Qa URL, и это должно подтолкнуть к configobj. но configobj находится в транспортире.

ReferenceError: configObj is not defined 

это erro.r.

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

Я могу сделать что-то подобное, но он не будет нажимать снова. Также я не могу получить qa или local для параметра, чтобы поставить первую задачу?

для этого

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

я имею в виду здесь, сначала перейдите в окр (окр означает КИ или тычок или местный)

когда я бег от

глотка транспортира местного

как я могу получить местный к этому env?

Как я могу сделать его толкать и так, что я могу использовать в транспортира

это localurl

module.exports = "localhost:8080"; 

только URL

я кулачок использовать setbaseurl задачу [setbaseurl], но как WIIL я получить местные услуги в

gulp protractor local?

ответ

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 

Если вы хотите использовать этот configObj в conf.js файл, то в разделе арг, проходят ['--params.configObj', configObj] где "--params.configObj" определяется в conf.js

params: { 
     configObj: '' 
     } 

Для добавьте самостоятельную ссылку, которую вы можете использовать как:

configObj['--params.configObj'] = configObj; 
Смежные вопросы