Вам необходимо удалить присвоение переменной в onPrepare
. Вы перезаписываете то, что вы передаете из командной строки, устанавливая это в пустую строку.
Когда вы передаете их из командной строки, они будут доступны для объекта params
. Нет необходимости устанавливать их снова в вашем onPrepare
. Добавьте console.log()
в ваш onPrepare
, и вы увидите.
Запустите его из командной строки следующим образом: protractor conf.js --params.webmaster=abc --params.webmaspass=foo --params.url=http://devel/
Опять же, если вы зарегистрируете их в своем onPrepare
, вы увидите, что он работает. То, как вы сейчас это делаете, вы просто перезаписываете значения, передаваемые через командную строку.
onPrepare: function () {
jasmine.getEnv().addReporter(new SpecReporter({
spec: {
displayStacktrace: true
}
}));
if (browser.params.Url == 'http://devel/') {
consoel.log(browser.params.webmaster) //should be abc
console.log(browser.params.webmaspass) //should be foo
}
//(other environments)
else {
console.log('-------------error during log in');
}*/
}
Еще один способ сделать это - установить некоторые переменные среды перед выполнением теста, а затем получить к ним доступ в своих скриптах, используя process.env.envVariableName
или ${envVariableName}
. Оба способа будут работать.
set DEVEL_WEBMASTER=abc
set DEVEL_WEBMASPASS=foo
onPrepare: function () {
jasmine.getEnv().addReporter(new SpecReporter({
spec: {
displayStacktrace: true
}
}));
if (browser.params.Url == 'http://devel/') {
browser.params.webmaster=process.env.DEVEL_WEBMASTER;
browser.params.webmaspass=process.env.DEVEL_WEBMASPASS;
}
//(other environments)
else {
console.log('-------------error during log in');
}*/
}
Просто помните, что если вы используете этот метод, вам придется устанавливать переменные для каждого сеанса. Если вы планируете автоматизировать эти тесты с использованием среды CI, вы можете просто добавить их туда в качестве секретных переменных (если у вас есть такая опция), и они всегда будут готовы и ждут. Там не будет необходимости устанавливать их вручную во время каждой сборки.