команда gulp для получения параметров - PullRequest
0 голосов
/ 27 октября 2018

my package.json имеет такие сценарии

  {
   "scripts": {
         "pretest": "npm run tsc",

          "test": "gulp e2e",
         }
    }

мы используем машинопись и webdriverIO для автоматизации. Я хочу использовать gulp, чтобы передать параметры в мою тестовую среду. Пример:

       npm test --suite HomePageTests

тогда должны работать спецификации, относящиеся к домашней странице.

У меня есть файл gulp, подобный этому

      // gulpfile.js
      const gulp = require('gulp');

       const Launcher = require('webdriverio/build/lib/launcher');
       const wdio = new Launcher(path.join(__dirname, 
                                      'src/config/conf.ts'));



        // fetch command line arguments
        const arg = (argList => {
           let arg = {}, a, opt, thisOpt, curOpt;
           for (a = 0; a < argList.length; a++) {

                thisOpt = argList[a].trim();
                opt = thisOpt.replace(/^\-+/, '');
                 if (opt === thisOpt) {
                       // argument value
                       if (curOpt) arg[curOpt] = opt;

                                 curOpt = null;

                  }else {

                    // argument name
                    curOpt = opt;
                    arg[curOpt] = true;
                  }

                }
               console.log("arg", arg)
               return arg;
               })(process.argv);


              gulp.task('e2e', () => {
                  return wdio.run(code => {
                     process.exit(code);
                  }, error => {
                  console.error('Launcher failed to start the test',error.stacktrace);
                 process.exit(1);
               });


            });

Поэтому, когда я вызываю глоток, прямо как

          gulp e2e --suite HomePageTests

печатается как

           suite: HomePageTests

Но если я использую

            npm test --suite HomePageTests

Сбой при печати gulp e2e HomePageTests

вопросы

  1. Как мне передать эти значения из npm, чтобы gulp понял
  2. Если я перейду к другому значению, например, gulp e2e --server staging, и хотел бы использовать переменную "staging" в моем спецификационном файле, например

    если сервер === staging { // сделай это } еще { // сделай это }

Как мне передать их из файла gulp в файл спецификаций?

Спасибо !!

1 Ответ

0 голосов
/ 05 ноября 2018

Вы можете использовать зависимость Ярга

var argv = require('yargs').argv;
gulp.task('test', function(){
   console.log(argv.arg);
});

, тогда, если вы выполните команду для gulp, передавая аргумент, подобный этому

gulp test --arg HomePageTests

, он выдастна консоли HomePageTests

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...