Проблема с добавлением имени набора в транспортир gulp

Я застрял с Gulp в качестве оболочки. У меня есть несколько файлов спецификаций в моей работе для разных проектов (веб-сайтов), и я хочу создать наборы тестов из этих файлов спецификаций. Ниже приведен код, написанный кем-то в gulp`

var binPath = './node_modules/.bin/';

gulp.task('test-all', function(cb) {
  async.eachSeries(glob.sync('sites/*'), testSite, cb);
});
gulp.task('test', function(cb) {
  env.validate(util.env, {
    site: {
      required: true,
    },
    useSelenium: {
      required: false,
    },
    params: {
      required: false,
    }
  });
  testSite('sites/' + util.env.site, cb);
});

gulp.task('explorer', function(cb) {
  runProtractor(['--elementExplorer', '--directConnect'], cb);
});

gulp.task('serve', function(cb) {
  runModule('webdriver-manager', ['start'], cb);
});
gulp.task('update', function(cb) {
  runModule('webdriver-manager', ['update'], cb);
});
gulp.task('default', ['test']);
function runModule(name, params, cb) {
  new simpleCommand(path.join(binPath, name), params, process.cwd()).run(cb);
}
function runProtractor(params, cb) {
  runModule('protractor', params, cb);
}
function testSite(site, cb) {
  var params = [
    site + '/protractor.conf.js', suite=smoke,
    '--params.timestamp=' + timestamp
  ];
  if (!util.env.useSelenium) {
    params.push('--directConnect');
  }
  if (util.env.params) {
    params.push(util.env.params.replace(/(^['"]|['"]$)/g, '').trim());
  }
  util.log('Testing ' + site);
  runProtractor(params, function(err) {
    if (err) {
      util.log(err);
    }
    cb();
  });
}

` Теперь я указал имя набора, который я хочу выполнить выше. Но я хочу захватить это имя пакета из аргумента командной строки.

gulp test --site [sitename] --suite=smoke

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


person NewWorld    schedule 07.09.2016    source источник
comment
Я попробовал gulp test --site sitename --params --suite='smoke', но выдает ошибку TypeError: util.env.params.replace не является функцией   -  person NewWorld    schedule 08.09.2016
comment
Я знаю, где мне нужно отредактировать файл gulp.js. У меня вопрос: если я укажу команду gulp test --site sitename --suite='smoke'. как мне захватить --suite=smoke, который я ввел в CLI?   -  person NewWorld    schedule 08.09.2016


Ответы (1)


Я заставил это работать.

function testSite(site, cb) {
  var params = [
    site + '/protractor.conf.js', '--suite='+util.env.suite,
    '--params.timestamp=' + timestamp
person NewWorld    schedule 08.09.2016