Я пишу некоторый тест в nightwatch и имею файл globals.js, который буквально экспортирует объект js ниже.Работа с global.js в nightwatch js
var self = module.exports = {
environment: undefined,
beforeEach: function (browser, done) {
browser.execute(function(data) {
return window.navigator.userAgent;
}, [], function(result) {
self.environment = result.value;
console.log("Run against: " + self.environment);
done();
});
console.log('the new env is', self.environment);
},
};
Примечание: console.log("Run against: " + self.environment);
печатает мой ENV значение, которое не неопределенные в этом случае. Однако. Когда когда-либо я пытаюсь получить доступ к среде из другого файла/класса. Он возвращает значение по умолчанию undefined, несмотря на то, что я обновил его ранее. Пример из приведенного ниже теста.
module.exports = {
tags: ['assetindex'],
'visit': function(browser) {
console.log('the environment is', browser.globals.environment);
(/Chrome/.test(browser.globals.environment)) ?
browser
.page.assetindex().mobileVisit()
.end()
:
browser
.page.assetindex().desktopVisit()
.end()
}
};
browser.globals.environment
всегда возвращались неопределенными здесь, несмотря на то, что я изменил его в моей функции beforeEach. Как мне это достичь? Что я делаю не так ?
B. Есть ли способ, которым я могу архивировать это в 'before' not' beforeEach'. Я заметил, что мне не нужно повторять один и тот же тест все время, и я могу просто пропустить с ним раньше. Я понимаю, прежде чем получить другой параметр, и браузер не один. Пожалуйста, как я могу это сделать раньше? Любая помощь будет оценена по достоинству. –
Не уверен, что вы можете сделать это до начала. Вы можете пропустить 'browser.execute' в' beforeEach', если «среда» уже определена. –
oic, Не могли бы вы привести пример с пропуском?. Я возвращаю null или помещаю browser.exec в блок if? –