Транспортир - передать параметры из консоли в conf.js - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть config.js, как показано ниже:

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './src/**/*.e2e-spec.ts'
  ],

  params: {
    browser: 'chrome' 
},

  capabilities: {
    'browserName': (params.browser || 'chrome'),
  },
 ...
}

Теперь я хотел бы передать параметр 'browser' из консоли, чтобы запустить его в IE вместо Chrome по умолчанию:

protractor e2e/protractor.conf.js --params.browser='internet explorer'

или

protractor e2e/protractor.conf.js -- --params.browser='internet explorer'

Я перепробовал множество настроек, но каждый раз получаю:

[14:17:00] E/configParser - Error code: 105
[14:17:00] E/configParser - Error message: failed loading configuration file e2e/protractor.conf.js
[14:17:00] E/configParser - ReferenceError: params is not defined

Может кто-нибудь помочь, как это сделать?

Ответы [ 2 ]

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

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

protractor e2e/protractor.conf.js --browser='internet explorer'

И вы можете указать следующие параметры таким же образом:

--seleniumAddress=
--specs="['./src/**/*.e2e-spec.ts', '']"
--capabilities=<json string>
--suite=

Помимо указанных выше reserved параметров, вы можете указать любые параметры в формате --params.xxx в строке cmd и использовать формат browser.params.xxx в скрипте для использования xxx.

Но переменная browser нигде не может быть использована в conf.js, она запускается только после открытия браузера.

Как сказал веб-сайт транспортира , вы можете использовать функцию browser в onPrepare и в любом месте, где выполняется после вызова функции транспортира onPrepare.

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

недостаточно репутации для разъяснений:)

Вы уверены, что правильно называете эту часть params.browser ? Я имею в виду params . На мой взгляд params не определено. Вы работаете с объектом, поэтому попробуйте это: this.params.browser

Если вы определили свою конфигурацию в config.js , почему вы вызвали protractor.conf.js ?

Наконец, у транспортира есть свои глобалы. И есть несколько точек входа, где вы можете его использовать. Например, вы можете использовать глобальный объект транспортира «браузер» в onPrepare (). Чтобы получить доступ к параметрам, должно работать что-то вроде «browser.params.browser». Я не уверен, что вы можете получить доступ к глобальным переменным в основном файле conf во время его анализа. Может быть, некоторые обходные пути с process.argv помогут вам. Или переделайте свою логическую структуру.

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