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
вопросы
- Как мне передать эти значения из npm, чтобы gulp понял
Если я перейду к другому значению, например, gulp e2e --server staging, и хотел бы использовать переменную "staging" в моем спецификационном файле, например
если сервер === staging
{
// сделай это
} еще {
// сделай это
}
Как мне передать их из файла gulp в файл спецификаций?
Спасибо !!